; ; BT Martello IPIMON v1.6 4732_00 ; Partially reverse-engineered source code, ; Generates original bytes. ; ; Assembles online at https://www.asm80.com/ ; ; 2023-02-04 .cpu z80 .binto $1400 z180_assembly equ 0 ; asm80.com doesn't support Z180 at time of writing. ; ;--------------------------------- ; Memory Map ROM EQU 0 RAM EQU 0DF00H VINTBH EQU 0DFH ; Base address interrupt vector table high byte ;---------------- ; I/O map IOBASE equ 0 ; if 0 ; I don't know where these values came from: CNTLA0 equ 0088h ; CTLA0 CNTLB0 equ 0089h ; CTLB0 CNTLA1 equ 008Ch ; CTLA1 CNTLB1 equ 008Dh ; CTLB1 ; equ 008Bh ; Spare STAT0 equ 008Ah ; ST0 STAT1 equ 008Eh ; ST1 ; equ 008Bh ; Spare CNTLA1 equ 008Ch ; CTLA1 CNTLB1 equ 008Dh ; CTLB1 else ; These values match the code: CNTLA0 equ 00h ; CTLA0 CNTLA1 equ 01h ; CTLA1 CNTLB0 equ 02h ; CTLB0 CNTLB1 equ 03h ; CTLB1 STAT0 equ 04h ; ST0 STAT1 equ 05h ; ST1 TDR0 EQU 06h TDR1 equ 07h ; endif CTRL1 EQU 01H ; Control reg. 1 ISTAT0 EQU 02H ; Interrupt Status reg. 0 ; MSGOUT EQU 0BH ; Message Out MSGIN EQU 0CH ; Message In ; MSGINT EQU 05H ; Message Interrupt Pending Bit BOXFULL EQU 05H ; Mailbox Register Full bit ; DCNTL equ 0x32 IL equ 0x33 RCR equ 0x36 FIODAT EQU 40H ; Data reg. FIOCTL EQU 41h ; Control reg ; XRTSON EQU 60H ; SIO ch 1 RTS on (space) XRTSOFF EQU 70H ; SIO ch 1 RTS off (mark) ;-------------- ; Misc. equates ETX equ $03 SPC equ $20 DEL equ $7F CR EQU 0DH ; LF EQU 0AH ; BS EQU 08H ; TAB EQU 09H ; BELL EQU 07H ; XON EQU 011h ; 'Q' & 1FH ; XOFF EQU 013h ; 'S' & 1FH ; DBGRST EQU 0CFH ; Restart used by trace command ;-------------------------- .org ROM TRPVCT equ RAM+00h RSTV8 equ RAM+02h ; this matches the ROM I have RSTV16 equ RAM+04h RSTV24 equ RAM+06h RSTV32 equ RAM+08h RSTV40 equ RAM+0ah RSTV48 equ RAM+0ch RSTV56 equ RAM+0eh NMIVCT equ RAM+10h ; ; ; equ 008Fh ; Spare .if 0 WSTRT equ 0103h ; Monitor WARM start VCTST equ 0106h ; Vectored I/O Status, VCTIN equ 0109h ; Vectored I/O Input, VCTOUT equ 010Ch ; Vectored I/O Output, .else WSTRT equ 0x0238 ; Monitor WARM start VCTST equ RAM+0x12 ; Vectored I/O Status, VCTIN equ RAM+0x14 ; Vectored I/O Input, VCTOUT equ RAM+0x16 ; Vectored I/O Output, .endif STACK equ RAM+0x9b RAMEND equ RAM+0xbf ; these macros don't work .macro INO .db 0xED,0x38,%1 .endm .macro OUTO .db 0xED,0x39,%1 .endm ; unsigned char IPIMON_v1_6_4732_00_bin[] = { .if 0 db 0xc3,0x3e,0x00 db 0xc3,0xff,0xff db 0x00,0x00 db 0xe5,0x2a,0x02,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x04,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x06,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x08,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x0a,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x0c,0xdf db 0xe3,0xc9 db 0x00,0x00 db 0xe5,0x2a,0x0e,0xdf db 0xe3,0xc9 db 0xf5,0xed,0x38,0x34,0xe6,0x80,0xca,0xff,0x01,0xf1 db 0xe5,0x2a,0x00,0xdf,0xe3,0xc9 db 0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00 db 0xe5,0x2a,0x10,0xdf,0xe3,0xc9 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x34,0x37,0x33,0x32 db 0x2d,0x30,0x30,0x00,0x64,0x02,0x00,0x00 db 0x64,0x02,0x04,0x00 db 0x00,0x76,0x01,0x00,0x09,0x01,0x0a,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 db 0x00,0x00,0x00,0x00 db 0xc3,0xff,0x01 db 0xc3,0x38,0x02 db 0xc3,0x33,0x01 db 0xc3,0x39,0x01 db 0xc3,0x47,0x01 db 0xc3,0x74,0x01 db 0xc3,0x7d,0x01 db 0xc3,0x86,0x01 db 0xc3,0x93,0x01 db 0xc3,0x9c,0x01 db 0xc3,0xa5,0x01 db 0xc3,0xcb,0x01 db 0xc3,0xda,0x01 db 0xc3,0xe8,0x01 db 0xc3,0xff,0xff db 0xc3,0xff,0xff db 0xc3,0xff,0xff db 0xe5,0x2a,0x12 db 0xdf,0xe3 db 0xc9 db 0xe5,0x2a,0x14,0xdf,0xe3,0xc9 db 0xcd,0x39,0x01,0xe6,0x7f db 0xc9 db 0xe6,0x7f,0xe5,0x2a,0x16,0xdf,0xe3,0xc9 db 0x3a,0x88,0x00 db 0xed,0x39,0x00,0x3a,0x89,0x00,0xed,0x39,0x02,0x3a,0x8a,0x00 db 0xed,0x39,0x04,0x3a,0x8c,0x00,0xed,0x39,0x01,0x3a,0x8d,0x00 db 0xed,0x39,0x03,0x3a,0x8e,0x00,0xed,0x39,0x05,0xed,0x39,0x60 db 0xed,0x38,0x04,0xe6,0x80,0xc8,0x3e,0xff,0xc9 db 0xcd,0x74,0x01 db 0x28,0xfb,0xed,0x38,0x08,0xc9 db 0xf5,0xed,0x38,0x04,0xcb,0x4f db 0x28,0xf9,0xf1,0xed,0x39,0x06,0xc9 db 0xed,0x38,0x05,0xe6,0x80 db 0xc8,0x3e,0xff,0xc9 db 0xcd,0x93,0x01,0x28,0xfb,0xed,0x38,0x09 db 0xc9 db 0xf5,0xed,0x38,0x05,0xcb,0x4f,0x28,0xf9,0xf1,0xed,0x39 db 0x07,0xc9 db 0xed,0x38,0x41,0xaf,0xed,0x39,0x41,0x3c,0xed,0x39 db 0x41,0xaf,0xed,0x39,0x41,0x21,0x90,0x00,0x0e,0x41,0x06,0x08 db 0xed,0xb3,0xc9 db 0x3e,0x02,0xed,0x39,0x41,0xed,0x38,0x41,0xcb db 0x6f,0x3e,0xff,0xc0,0x3c,0xc9 db 0xcd,0xcb,0x01,0x28,0xfb,0x3e db 0x0c,0xed,0x39,0x41,0xed,0x38,0x41,0xc9 db 0xf5,0x3e,0x01,0xed db 0x39,0x41,0xed,0x38,0x41,0xcb,0x6f,0x20,0xf9,0x3e,0x0b,0xed db 0x39,0x41,0xf1,0xed,0x39,0x41,0xc9 db 0x31,0x9b,0xdf,0xed,0x38 db 0x32,0xe6,0x0f,0xed,0x39,0x32,0xaf,0xed,0x39,0x36,0x3e,0xdf db 0xed,0x47,0x3e,0xe0 .else ; The code begins here! ORG ROM JP CPUTRP ; This can be deleted JP 0FFFFH ; and a new jump added here DS 2 ; Address adjustment for Restarts RST8: PUSH HL ; Execute restart code at stored vector LD HL,(RSTV8) ; in RAM at RSTVn EX (SP),HL ; Get restart vector RET ; Jump to routine DS 2 ; same for all other RST addresses: RST16: PUSH HL LD HL,(RSTV16) EX (SP),HL RET ; ; ; DS 2 RST24: PUSH HL LD HL,(RSTV24) EX (SP),HL RET ; ; ; DS 2 RST32: PUSH HL LD HL,(RSTV32) EX (SP),HL RET ; ; ; DS 2 RST40: PUSH HL LD HL,(RSTV40) EX (SP),HL RET ; ; ; DS 2 RST48: PUSH HL LD HL,(RSTV48) EX (SP),HL RET ; ; ; DS 2 RST56: PUSH HL LD HL,(RSTV56) EX (SP),HL RET ; ; ; ;; DS 2 CPUTRP: PUSH AF .if z180_assembly INO A,(ITC) ; Test 64180 trap bit .else .db 0xED .db 0x38,0x34 .endif AND 80H JP Z,START ; Trap code continues here POP AF PUSH HL LD HL,(TRPVCT) ; Trap routine is vectored also EX (SP),HL RET ; ; ; DS 24 ; Move up to 0066H for NMI NMI0: PUSH HL LD HL,(NMIVCT) ; NMI service routine vector EX (SP),HL RET ; ; ; DS 20 ; Move up to 0080H ;------------------- ; Table for I/O parameters ; Must ALWAYS begin at 0080H ! .org 0x0080 IDENT: DB "4732-00" ; System identifier VIOCH: DB 00h ; Pointer to start-up vectored I/O channle ; 0 Serial channel 0 ; 1 Serial channel 0 ; 2 Parallel I/O CTLA0: DB 01100100B ; RTS,EN RX and TX, 8 + 1, no parity CTLB0: DB 00000010B ; 9600 bits/sec ST0: DB 00000000B ; Disable interrupts RES0: DB 00H ; spare entry CTLA1: DB 01100100B ; RTS,EN RX and TX, 8 + 1, no parity CTLB1: DB 00000010B ; 9600 bits/sec ST1: DB 00000100B ; Enable CTS1 RES1: DB 00H ; spare entry FIOLST: DB 00H,76H ; See Zilog databook for details DB 01H,00H ; Control registers only DB 09H,01H DB 0AH,00H DB 0 DS 104 ; Move up to 0100H ;------------------- ; Standard IPI Jump Table ; Must ALWAYS begin at 0100H ! .org 0x100 COLD: JP START ; Cold Start JP WSTRT ; Warm Start JP XIOST ; Vectored I/O JP XIOIN JP XIOOUT JP SIOST ; Unvectored SIO ch 0 JP SIOIN JP SIOOUT JP AUXST ; Unvectored SIO ch 1 JP AUXIN JP AUXOUT JP PIOST ; Unvectored Parallel I/O via STEbus JP PIOIN JP PIOOUT JP 0FFFFH ; Spare Jumps for user JP 0FFFFH JP 0FFFFH ;--------------------- ; I/O driver routines ; vectored I/O ; vectored I/O status CONST: XIOST: PUSH HL ; Address of the routine to execute LD HL,(VCTST) ; is at VCTST EX (SP),HL ; Jump to it RET ; ; ; ; Vectored I/O receive XIOIN: PUSH HL LD HL,(VCTIN) EX (SP),HL RET ; ; ; CONIN: CALL XIOIN ; Read console char. AND 7FH ; strip the top bit RET ; ; ; ; Vectored I/O transmit CONOUT: AND 7FH ; strip the top bit XIOOUT: PUSH HL LD HL,(VCTOUT) EX (SP),HL RET ; ; ; ;---------------- ; Polled Serial I/O ; Initialise SIO Channel 0 + 1 SETIOC: if z180_assembly LD A,(CTLA0) ; RTS, EN RX + TX, 8+1, No parity OUT (CNTLA0),A LD A,(CTLB0) ; 9600 bits/sec OUT (CNTLB0),A LD A,(ST0) ; Enable RX Interrupts OUT (STAT0),A LD A,(CTLA1) ; RTS, EN RX + TX, 8+1, No parity OUT (CNTLA1),A ; Note RTS not enabled in CNTLA1 LD A,(CTLB1) ; 1200 bits/sec OUT (CNTLB1),A LD A,(ST1) ; Enable RX Interrupts and CTS OUT (STAT1),A OUT (XRTSON),A ; Enable RTS1 with external latch else LD A,(CTLA0) ; RTS, EN RX + TX, 8+1, No parity .db 0xed,0x39,CNTLA0; OUT (CNTLA0),A LD A,(CTLB0) ; 9600 bits/sec .db 0xed,0x39,CNTLB0;OUT (CNTLB0),A LD A,(ST0) ; Enable RX Interrupts .db 0xed,0x39,STAT0;OUT (STAT0),A LD A,(CTLA1) ; RTS, EN RX + TX, 8+1, No parity .db 0xed,0x39,CNTLA1;OUT (CNTLA1),A ; Note RTS not enabled in CNTLA1 LD A,(CTLB1) ; 1200 bits/sec .db 0xed,0x39,CNTLB1;OUT (CNTLB1),A LD A,(ST1) ; Enable RX Interrupts and CTS .db 0xed,0x39,STAT1;OUT (STAT1),A .db 0xed,0x39,XRTSON;OUT (XRTSON),A ; Enable RTS1 with external latch endif ; Status of SIO channel 0 SIOST: if z180_assembly INO A,(STAT0) ; Read status reg. else db 0xED,0x38,STAT0 endif AND 80H ; isolate recd. char. bit RET Z ; Return if nothing waiting LD A,-1 ; Return True flag if available RET ; ; ; ; Receive a character, SIO channel 0 SIOIN: CALL SIOST ; char. available? JR Z,SIOIN ; If not,wait for one if z180_assembly INO A,(RDR0) ; If yes, read it else db 0xED,0x38,0x08 endif RET ; ; ; ; Transmit a character, SIO channel 0 SIOOUT: PUSH AF ; Save character to be transmitted WAITX: if z180_assembly INO A,(STAT0) ; Read staus reg. else db 0xED,0x38,STAT0 endif BIT 1,A ; Isolate Transmit Buffer Empty bit JR Z,WAITX ; Wait for buffer to clear (WAS WAIT) POP AF ; Recover transmitted char. if z180_assembly OUTO (TDR0),A ; Send it else db 0xED,0x39,TDR0 endif RET ; ; ; ; Serial Channel 1 ; Status of SIO channel 1 AUXST: if z180_assembly INO A,(STAT1) ; Read status reg. else db 0xED,0x38,STAT1 endif AND 80H ; isolate recd. char. bit RET Z ; Return if nothing waitinh LD A,-1 ; Return True flag if available RET ; ; ; ; Receive a character, SIO channel 1 AUXIN: CALL AUXST ; char. available? JR Z,AUXIN ; If not,wait for one if z180_assembly INO A,(RDR1) ; If yes, read it else db 0xED,0x38,0x09 endif RET ; ; ; ; Transmit a character, SIO channel 1 AUXOUT: PUSH AF ; Save character to be transmitted WAITX1: if z180_assembly INO A,(STAT1) ; Read status reg. else db 0xED,0x38,STAT1 endif BIT 1,A ; Isolate Transmit Buffer Empty bit JR Z,WAITX1 ; Wait for buffer to clear POP AF ; Recover transmitted char. if z180_assembly OUTO (TDR1),A ; Send it else db 0xED,0x39,TDR1 endif RET ; ; ; ;---------------------------------- ; Parallel I/O via Zilog Z8038A FIO ; Initialise FIO SETSIO: ;; 0x01b2 if z180_assembly INO A,(FIOCTL) ; Reset state counter else db 0xED,0x38,FIOCTL endif XOR A if z180_assembly OUTO (FIOCTL),A ; Send 00H else db 0xED,0x39,FIOCTL endif INC A if z180_assembly OUTO (FIOCTL),A ; Send 01H else db 0xED,0x39,FIOCTL endif XOR A if z180_assembly OUTO (FIOCTL),A ; Send 00H, Out of Reset now else db 0xED,0x39,FIOCTL endif LD HL,FIOLST ; Initialisation Table LD C,FIOCTL ; Destination Port LD B,08H ; Number of bytes to send OTIR ; Send the lot RET ; ; ; ; Parallel I/O via Zilog Z8038A FIO ;------------------- ; FIO receive status ; A=0, no char. A=-1, char. awaits PIOST: LD A,ISTAT0 ; Select Interrupt status reg. 1 if z180_assembly OUTO (FIOCTL),A ; INO A,(FIOCTL) ; Read it else db 0xED,0x39,FIOCTL db 0xED,0x38,FIOCTL endif .if 0 BIT MSGINT,A ; Test the message pending bit .else .db $cb, $6f .endif LD A,-1 ; Prepare a TRUE flag RET NZ ; Message waiting if bit was set INC A ; Otherwise nothing RET ; So return with false ;-------------------- ; Read char. from FIO PIOIN: CALL PIOST ; Wait until char. ready JR Z,PIOIN ; Exit loop on TRUE LD A,MSGIN ; Select the mailbox if z180_assembly OUTO (FIOCTL),A INO A,(FIOCTL) ; Read it else db 0xED,0x39,FIOCTL db 0xED,0x38,FIOCTL endif RET ; ; ; ;-------------------------- ; Output a char in A to FIO PIOOUT: PUSH AF ; Save the mail LD A,CTRL1 ; Select control reg. 1 if z180_assembly OUTO (FIOCTL),A ; Send 01H else db 0xED,0x39,FIOCTL endif POLLTX: .if z180_assembly INO A,(FIOCTL) ; Read the mailbox status .else db 0xED,0x38,FIOCTL .endif .if 0 BIT BOXFULL,A ; Test the Mailbox Full bit .else .db $cb, $6f .endif JR NZ,POLLTX ; Wait while full (Set) LD A,MSGOUT ; Select Mailbox .if z180_assembly OUTO (FIOCTL),A .else db 0xED,0x39,FIOCTL .endif POP AF ; Recover the mail .if z180_assembly OUTO (FIOCTL),A ; Post the data .else db 0xED,0x39,FIOCTL .endif RET ; ; ; ;---------------- ; Cold Start code START: LD SP,STACK ; Set up the stack area .if z180_assembly INO A,(DCNTL) ; Set CPU mode .else db 0xED,0x38,0x32 .endif AND 0FH ; No wait states, I/O or MEM .if z180_assembly OUT (DCNTL),A ; .else db 0xED,0x39,DCNTL .endif XOR A .if z180_assembly OUTO (RCR),A ; No refresh .else db 0xED,0x39,RCR .endif LD A,VINTBH ; Set up interrupt vector table LD I,A LD A,0E0H ; Table at VINTBH_E0H .if z180_assembly OUTO (IL),A .else db 0xED,0x39,IL .endif LD HL,RAMEND CLRAM: LD (HL),0 DEC L JR NZ,CLRAM ; Clear the RAM LD HL,DEBUG LD (RSTV8),HL ; Initialise debug vector LD (TRPVCT),HL ; and trap vector LD HL,VIOCH ; Location at start containing channel LD C,(HL) ; Select start-up I/O channel db 0xcd,0x8f,0x02 CALL SETIOC ; Move I/O vectors into table CALL SETSIO ; Initialise SIO Channels 0 and 1 CALL SETPIO ; Initialise Parallel I/O .endif WRSRT: ; BLOCK 'new_code' (start 0x0238 end 0x0c0d) new_code_start: ld sp,RAM+09bh ;0238 31 9b df 1 ld iy,RAM+019h ;023b fd 21 19 df . ! ld (iy+0),000h ;023f fd 36 00 00 . 6 call sub_0999h_print_CRLF_then_istr_that_follows ;0243 cd 99 09 .istr ">" ; cp (hl) ;0246 be ; call sub_09beh ;0247 cd be 09 ld hl,WRSRT ;024a 21 38 02 ! 8 push hl ;024d e5 call sub_0ac5h ;024e cd c5 0a ret z ;0251 c8 inc de ;0252 13 call sub_0abbh_test_for_Accent_grave_DEL_or_SPC ;0253 cd bb 0a ld hl,l0c59h_table_of_command_characters ;0256 21 59 0c ! Y call sub_0a24h ;0259 cd 24 0a . $ call z,sub_0ac5h ;025c cc c5 0a jp (hl) ;025f e9 ; ; ; dec de ;0260 1b ; l0261h_print_LF_then_do_something: call sub_099ch_print_istr_that_follows ;0261 cd 9c 09 db LF+$80 ;0264 8a ; ld hl,RAM+01bh ;0265 21 1b df ! ld a,(hl) ;0268 7e ~ inc hl ;0269 23 # and a ;026a a7 ex de,hl ;026b eb sbc hl,de ;026c ed 52 . R sub l ;026e 95 ld b,a ;026f 47 G call sub_0a13h ;0270 cd 13 0a call sub_099ch_print_istr_that_follows ;0273 cd 9c 09 .istr "^ - " ;0276 5e highlight position of error? ; ;; jr nz,l02a6h ;0277 20 2d - ;; and b ;0279 a0 ; ; ld a,(iy+0) ;027a fd 7e 00 . ~ ld hl,L0e96h_istr_Error ;027d 21 96 0e ! ; call sub_097ah_print_istr_at_HL_if_A_is_zero ;0280 cd 7a 09 . z call sub_099ch_print_istr_that_follows ;0283 cd 9c 09 db CR ;0286 0d .istr "?" ;0287 bf jr WRSRT ;0288 18 ae ; ; ; call sub_0a64h ;028a cd 64 0a . d l028dh: jr c,l0261h_print_LF_then_do_something ;028d 38 d2 8 ; ; ; sub_028fh: ld a,c ;028f 79 y A = C add a,a ;0290 87 . A = C*2 add a,c ;0291 81 . A = C*3 add a,a ;0292 87 . A = C*6 ld c,a ;0293 4f O C = C*6 ; ld b,0 ;0294 06 00 . . BC = C*6 ld hl,L0E84_table_of_triple_io_vectors ;0296 21 84 0e ! add hl,bc ;0299 09 . ; add offset ld bc,6 ;029a 01 06 00 move 6 bytes = 3 words ld de,VCTST ;029d 11 12 df ldir ;02a0 ed b0 . . ; move ret ;02a2 c9 ; ; ; ; call sub_0a3ah ;02a3 cd 3a 0a . : l02a6h: jr c,l028dh ;02a6 38 e5 8 l02a8h: call sub_0ac5h ;02a8 cd c5 0a jr nz,l02bch ;02ab 20 0f call sub_0b2eh_print_hex_word_then_space ;02ad cd 2e 0b ld a,(hl) ;02b0 7e ~ call sub_0b36h_print_hex_byte_then_space ;02b1 cd 36 0b . 6 call sub_09beh ;02b4 cd be 09 call sub_0ac5h ;02b7 cd c5 0a jr z,l02dah ;02ba 28 1e ( l02bch: ld a,(de) ;02bc 1a inc de ;02bd 13 cp 02eh ;02be fe 2e ret z ;02c0 c8 cp 022h ;02c1 fe 22 . " jr z,l0303h ;02c3 28 3e ( > cp 02dh ;02c5 fe 2d . - jr nz,l02cch ;02c7 20 03 dec hl ;02c9 2b + jr l02a8h ;02ca 18 dc ; ; ; l02cch: call sub_0abbh_test_for_Accent_grave_DEL_or_SPC ;02cc cd bb 0a cp 04ah ;02cf fe 4a . J jr z,l02ddh ;02d1 28 0a ( dec de ;02d3 1b call sub_0a64h ;02d4 cd 64 0a . d l02d7h: jr c,l02a6h ;02d7 38 cd 8 ld (hl),c ;02d9 71 q l02dah: inc hl ;02da 23 # jr l02a8h ;02db 18 cb ; ; ; l02ddh: push hl ;02dd e5 ld b,h ;02de 44 D ld c,l ;02df 4d M inc bc ;02e0 03 push de ;02e1 d5 call sub_0a3ah ;02e2 cd 3a 0a . : jr c,l02f6h ;02e5 38 0f 8 ld (iy+0),001h ;02e7 fd 36 00 01 . 6 sbc hl,bc ;02eb ed 42 . B ld c,l ;02ed 4d M ld a,c ;02ee 79 y add a,a ;02ef 87 sbc a,a ;02f0 9f cp h ;02f1 bc scf ;02f2 37 7 jr nz,l02f9h ;02f3 20 04 ccf ;02f5 3f ? l02f6h: ex de,hl ;02f6 eb ex (sp),hl ;02f7 e3 ex de,hl ;02f8 eb l02f9h: pop de ;02f9 d1 pop hl ;02fa e1 jr l02d7h ;02fb 18 da ; ; ; l02fdh: call sub_0b2eh_print_hex_word_then_space ;02fd cd 2e 0b call sub_09beh ;0300 cd be 09 l0303h: ld a,(de) ;0303 1a cp 00dh ;0304 fe 0d jr z,l02fdh ;0306 28 f5 ( inc de ;0308 13 cp 022h ;0309 fe 22 . " jr z,l02a8h ;030b 28 9b ( ld (hl),a ;030d 77 w inc hl ;030e 23 # jr l0303h ;030f 18 f2 ; ; ; call sub_0a88h ;0311 cd 88 0a l0314h: jr c,l02d7h ;0314 38 c1 8 call sub_0b81h_print_CRLF ;0316 cd 81 0b l0319h: ld hl,RAM+01bh ;0319 21 1b df ! push hl ;031c e5 ld bc,020ffh ;031d 01 ff 20 . . l0320h: call sub_034dh ;0320 cd 4d 03 . M call c,sub_034dh ;0323 dc 4d 03 . M jr nc,l032fh ;0326 30 07 0 ld a,(hl) ;0328 7e ~ add a,c ;0329 81 ld c,a ;032a 4f O inc hl ;032b 23 # djnz l0320h ;032c 10 f2 ld c,b ;032e 48 H l032fh: pop hl ;032f e1 inc c ;0330 0c jr nz,l0344h ;0331 20 11 inc (hl) ;0333 34 4 dec (hl) ;0334 35 5 jr z,l0348h ;0335 28 11 ( ld c,(hl) ;0337 4e N get count inc hl ;0338 23 # ld d,(hl) ;0339 56 V get destination inc hl ;033a 23 # ld e,(hl) ;033b 5e ^ inc hl ;033c 23 # inc hl ;033d 23 # ld b,000h ;033e 06 00 ldir ;0340 ed b0 move block jr l0348h ;0342 18 04 ; ; ; l0344h: call sub_099ch_print_istr_that_follows ;0344 cd 9c 09 db BELL+$80 ;0347 87 l0348h: cp 01ah ;0348 fe 1a jr nz,l0319h ;034a 20 cd ret ;034c c9 ; ; ; sub_034dh: call sub_0b20h ;034d cd 20 0b . cp 01ah ;0350 fe 1a ret z ;0352 c8 ; call sub_0af5h ;0353 cd f5 0a cp 00dh ;0356 fe 0d ret z ;0358 c8 ; call sub_0a98h_char_to_hex_value ;0359 cd 98 0a jr c,sub_034dh ;035c 38 ef loop if carry rld ;035e ed 6f scf ;0360 37 set carry ret ;0361 c9 ; ; ; call sub_0729h ;0362 cd 29 07 . ) l0365h: jr c,l0314h ;0365 38 ad 8 ld d,b ;0367 50 P ld e,c ;0368 59 Y l0369h: call sub_0b81h_print_CRLF ;0369 cd 81 0b ld b,020h ;036c 06 20 . ld a,d ;036e 7a z or a ;036f b7 jr nz,l0378h ;0370 20 06 or e ;0372 b3 ret z ;0373 c8 ; cp b ;0374 b8 jr nc,l0378h ;0375 30 01 0 ld b,e ;0377 43 C l0378h: call sub_099ch_print_istr_that_follows ;0378 cd 9c 09 .istr ":" ; cp d ;037b ba ; xor a ;037c af ; ld c,b ;037d 48 print register B call sub_039dh_print_C_register ;037e cd 9d 03 ld c,h ;0381 4c print register call sub_039dh_print_C_register ;0382 cd 9d 03 ld c,l ;0385 4d print register call sub_039dh_print_C_register ;0386 cd 9d 03 ld c,000h ;0389 0e 00 print "00" call sub_039dh_print_C_register ;038b cd 9d 03 l038eh: ld c,(hl) ;038e 4e print byte at (HL) call sub_039dh_print_C_register ;038f cd 9d 03 inc hl ;0392 23 hl++ dec de ;0393 1b de-- djnz l038eh ;0394 10 f8 loop until neg ;0396 ed 44 . D call sub_0adeh_hex_byte_to_ASCII ;0398 cd de 0a jr l0369h ;039b 18 cc ; ; ; sub_039dh_print_C_register: push af ;039d f5 ld a,c ;039e 79 y call sub_0adeh_hex_byte_to_ASCII ;039f cd de 0a pop af ;03a2 f1 add a,c ;03a3 81 ret ;03a4 c9 ; ; ; call sub_070bh ;03a5 cd 0b 07 l03a8h: jr c,l0365h ;03a8 38 bb 8 ; l03aah: push bc ;03aa c5 push hl ;03ab e5 call sub_0b2eh_print_hex_word_then_space ;03ac cd 2e 0b ld c,004h ;03af 0e 04 ; loop_03b1h: ld b,004h ;03b1 06 04 call sub_0b26h_print_hex_words_with_space ;03b3 cd 26 0b . & call sub_0b39h_print_a_space ;03b6 cd 39 0b . 9 dec c ;03b9 0d jr nz,loop_03b1h ;03ba 20 f5 ; pop hl ;03bc e1 ld b,010h ;03bd 06 10 l03bfh: ld a,(hl) ;03bf 7e ~ and 07fh ;03c0 e6 7f .  ; cp SPC ;03c2 fe 20 . space? jr nc,skip_03c8h ;03c4 30 02 0 ld a,02eh ;03c6 3e 2e > skip_03c8h: inc hl ;03c8 23 # call sub_0af5h ;03c9 cd f5 0a djnz l03bfh ;03cc 10 f1 pop bc ;03ce c1 call sub_0744h ;03cf cd 44 07 . D jr c,l03aah ;03d2 38 d6 8 ret ;03d4 c9 ; ; ; call sub_0a84h ;03d5 cd 84 0a l03d8h: jr c,l03a8h ;03d8 38 ce 8 call sub_0b2eh_print_hex_word_then_space ;03da cd 2e 0b ld b,h ;03dd 44 D ld c,l ;03de 4d M in a,(c) ;03df ed 78 . x jp sub_0adeh_hex_byte_to_ASCII ;03e1 c3 de 0a ; ; ; call sub_0a3ah ;03e4 cd 3a 0a . : call nc,sub_0a64h ;03e7 d4 64 0a . d call nc,sub_0a88h ;03ea d4 88 0a l03edh: jr c,l03d8h ;03ed 38 e9 8 ld a,c ;03ef 79 y ld c,l ;03f0 4d M ld b,h ;03f1 44 D out (c),a ;03f2 ed 79 . y ret ;03f4 c9 ; ; ; call sub_0729h ;03f5 cd 29 07 . ) l03f8h: jr c,l03edh ;03f8 38 f3 8 ret z ;03fa c8 push bc ;03fb c5 call sub_0a64h ;03fc cd 64 0a . d call nc,sub_0a88h ;03ff d4 88 0a l0402h: jr c,l03f8h ;0402 38 f4 8 ld e,c ;0404 59 Y pop bc ;0405 c1 dec bc ;0406 0b ld (hl),e ;0407 73 s call sub_0744h ;0408 cd 44 07 . D ret z ;040b c8 ld d,h ;040c 54 T ld e,l ;040d 5d ] inc de ;040e 13 l040fh: ldir ;040f ed b0 ret ;0411 c9 ; ; ; call sub_0729h ;0412 cd 29 07 . ) push hl ;0415 e5 call nc,sub_0a84h ;0416 d4 84 0a l0419h: jr c,l0402h ;0419 38 e7 8 pop de ;041b d1 ex de,hl ;041c eb push hl ;041d e5 sbc hl,de ;041e ed 52 . R pop hl ;0420 e1 jr nc,l040fh ;0421 30 ec 0 add hl,bc ;0423 09 ex de,hl ;0424 eb add hl,bc ;0425 09 ex de,hl ;0426 eb dec de ;0427 1b dec hl ;0428 2b + lddr ;0429 ed b8 ret ;042b c9 ; ; ; ld hl,(RAM+0bdh) ;042c 2a bd df * call sub_0ac5h ;042f cd c5 0a jr z,skip_0451h ;0432 28 1d ( ; push hl ;0434 e5 call sub_0a84h ;0435 cd 84 0a pop bc ;0438 c1 l0439h: jr c,l0419h ;0439 38 de 8 ld de,RAM+0bbh ;043b 11 bb df ld (RAM+0bdh),hl ;043e 22 bd df " ld a,(bc) ;0441 0a ; cp 0cfh ;0442 fe cf jr nz,l0448h ;0444 20 02 ; ld a,(de) ;0446 1a ld (bc),a ;0447 02 l0448h: ld a,(hl) ;0448 7e ~ ld (de),a ;0449 12 ld (hl),0cfh ;044a 36 cf 6 ld a,0ffh ;044c 3e ff > ld (RAM+0bch),a ;044e 32 bc df 2 ; ; skip_0451h: ld a,(hl) ;0451 7e ~ cp 0cfh ;0452 fe cf jp z,sub_0b2eh_print_hex_word_then_space ;0454 ca 2e 0b ; ; ; call sub_0999h_print_CRLF_then_istr_that_follows ;0457 cd 99 09 .istr "Not set."; ld c,(hl) ;045a 4e N ; xor a ;0462 af ld (RAM+0bch),a ;0463 32 bc df clear this location ret ;0466 c9 ; ; ; l0467h: call sub_0ac5h ;0467 cd c5 0a jr z,l04dah ;046a 28 6e ( n ld hl,0ec8h ;046c 21 c8 0e ! ld b,00ch ;046f 06 0c call sub_04d0h ;0471 cd d0 04 jr z,l04bah ;0474 28 44 ( D ld b,009h ;0476 06 09 call sub_04d0h ;0478 cd d0 04 loop_047bh: jp nz,l0261h_print_LF_then_do_something ;047b c2 61 02 . a ld hl,RAM+0b4h ;047e 21 b4 df ! djnz l048bh ;0481 10 08 call sub_0a64h ;0483 cd 64 0a . d l0486h: jr c,l0439h ;0486 38 b1 8 ld (hl),c ;0488 71 q jr l0467h ;0489 18 dc ; ; ; l048bh: ld a,080h ;048b 3e 80 > l048dh: rlca ;048d 07 djnz l048dh ;048e 10 fd ld c,a ;0490 4f O call sub_0ac5h ;0491 cd c5 0a ld (iy+0),003h ;0494 fd 36 00 03 . 6 jp z,l0261h_print_LF_then_do_something ;0498 ca 61 02 . a dec hl ;049b 2b + inc (iy+0) ;049c fd 34 00 . 4 ld b,a ;049f 47 G sub 030h ;04a0 d6 30 . 0 jr z,l04a7h ;04a2 28 03 ( dec a ;04a4 3d = jr nz,loop_047bh ;04a5 20 d4 l04a7h: inc de ;04a7 13 call sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE ;04a8 cd ae 0a jr nz,loop_047bh ;04ab 20 ce ld a,c ;04ad 79 y bit 0,b ;04ae cb 40 . @ jr z,l04b5h ;04b0 28 03 ( or (hl) ;04b2 b6 jr l04b7h ;04b3 18 02 ; ; ; l04b5h: cpl ;04b5 2f / and (hl) ;04b6 a6 l04b7h: ld (hl),a ;04b7 77 w jr l0467h ;04b8 18 ad ; ; ; l04bah: push bc ;04ba c5 call sub_0a3ah ;04bb cd 3a 0a . : pop bc ;04be c1 l04bfh: jr c,l0486h ;04bf 38 c5 8 ; push de ;04c1 d5 ex de,hl ;04c2 eb ld a,b ;04c3 78 x ld hl,0c89h ;04c4 21 89 0c ! call sub_0a24h ;04c7 cd 24 0a . $ ld (hl),e ;04ca 73 s inc hl ;04cb 23 # ld (hl),d ;04cc 72 r pop de ;04cd d1 jr l0467h ;04ce 18 97 ; ; ; sub_04d0h: call sub_09a2h ;04d0 cd a2 09 call nz,sub_0993h_search_for_bit_7_set_at_HL ;04d3 c4 93 09 ret z ;04d6 c8 djnz sub_04d0h ;04d7 10 f7 ret ;04d9 c9 ; ; ; l04dah: call sub_0b3eh ;04da cd 3e 0b . > sub_04ddh: call sub_099ch_print_istr_that_follows ;04dd cd 9c 09 db CR+80h ;04e0 8d ; ld hl,RAM+0b5h ;04e1 21 b5 df ! ld c,007h ;04e4 0e 07 call sub_04f4h ;04e6 cd f4 04 call sub_0acfh_print_a_space_then_hex_byte_at_HL_predecremented ;04e9 cd cf 0a call sub_0acfh_print_a_space_then_hex_byte_at_HL_predecremented ;04ec cd cf 0a call sub_0b39h_print_a_space ;04ef cd 39 0b . 9 ld c,3 ;04f2 0e 03 sub_04f4h: call sub_0ad2h_hex_byte_at_HL_predecremented ;04f4 cd d2 0a call sub_0b39h_print_a_space ;04f7 cd 39 0b . 9 dec hl ;04fa 2b + ld b,008h ;04fb 06 08 l04fdh: xor a ;04fd af rlc (hl) ;04fe cb 06 adc a,030h ;0500 ce 30 . 0 call sub_0af5h ;0502 cd f5 0a djnz l04fdh ;0505 10 f6 ld b,c ;0507 41 A l0508h: call sub_0acfh_print_a_space_then_hex_byte_at_HL_predecremented ;0508 cd cf 0a call sub_0ad2h_hex_byte_at_HL_predecremented ;050b cd d2 0a djnz l0508h ;050e 10 f8 ret ;0510 c9 ; ; ; xor a ;0511 af ld (RAM+0b9h),a ;0512 32 b9 df clear this location call sub_0ac5h ;0515 cd c5 0a jp z,l05b4h ;0518 ca b4 05 call sub_0a84h ;051b cd 84 0a l051eh: jr c,l04bfh ;051e 38 9f 8 ld a,(hl) ;0520 7e ~ ld (RAM+0bah),a ;0521 32 ba df (RAM+0bah) := (hl) ld (hl),0cfh ;0524 36 cf 6 jr l0537h ;0526 18 0f ; ; ; xor a ;0528 af ld (RAM+0b9h),a ;0529 32 b9 df 2 call sub_0ac5h ;052c cd c5 0a jr z,l0546h ;052f 28 15 ( call sub_0a84h ;0531 cd 84 0a jr c,l051eh ;0534 38 e8 8 di ;0536 f3 l0537h: pop de ;0537 d1 ld sp,RAM+07bh ;0538 31 7b df 1 { push de ;053b d5 ld (RAM+0a7h),sp ;053c ed 73 a7 df . s ld (RAM+0a5h),hl ;0540 22 a5 df " jp l05e3h ;0543 c3 e3 05 ; ; ; l0546h: call l04dah ;0546 cd da 04 call sub_0b20h ;0549 cd 20 0b . cp 00dh ;054c fe 0d jp z,l05e3h ;054e ca e3 05 ret ;0551 c9 ; ; ; l0552h: DEBUG: ex (sp),hl ;0552 e3 dec hl ;0553 2b + ld (RAM+0b7h),hl ;0554 22 b7 df " pop hl ;0557 e1 ld (RAM+0b5h),sp ;0558 ed 73 b5 df . s ld sp,RAM+0b5h ;055c 31 b5 df 1 push af ;055f f5 push bc ;0560 c5 push de ;0561 d5 push hl ;0562 e5 push ix ;0563 dd e5 push iy ;0565 fd e5 push hl ;0567 e5 ld hl,(RAM+0b5h) ;0568 2a b5 df * ex (sp),hl ;056b e3 push hl ;056c e5 ld hl,(RAM+0b7h) ;056d 2a b7 df * ex (sp),hl ;0570 e3 push hl ;0571 e5 push af ;0572 f5 ld a,i ;0573 ed 57 . W ld h,a ;0575 67 g ld a,r ;0576 ed 5f . _ ld l,a ;0578 6f o pop af ;0579 f1 ex (sp),hl ;057a e3 ex af,af' ;057b 08 push af ;057c f5 ex af,af' ;057d 08 exx ;057e d9 push bc ;057f c5 push de ;0580 d5 push hl ;0581 e5 exx ;0582 d9 ld a,(RAM+0bch) ;0583 3a bc df : or a ;0586 b7 ld de,(RAM+0b7h) ;0587 ed 5b b7 df . [ jr z,l05b0h ;058b 28 23 ( # ld hl,(RAM+0bdh) ;058d 2a bd df * sbc hl,de ;0590 ed 52 . R jr nz,l05b0h ;0592 20 1c call l04dah ;0594 cd da 04 ld a,(RAM+0bbh) ;0597 3a bb df : ld (de),a ;059a 12 xor a ;059b af ld (RAM+0bch),a ;059c 32 bc df 2 call sub_0999h_print_CRLF_then_istr_that_follows ;059f cd 99 09 .DB "++" ; dec hl ;05a2 2b + ; dec hl ;05a3 2b + .db 2 ; ld (bc),a ;05a4 02 .db "Break" ;; ld b,d ;05a5 42 B ;; ld (hl),d ;05a6 72 r ;; ld h,l ;05a7 65 e ;; ld h,c ;05a8 61 a ;; ld l,e ;05a9 6b k .db 2 ; ld (bc),a ;05aa 02 .istr "++" ; dec hl ;05ab 2b + ; xor e ;05ac ab l05adh: jp WRSRT ;05ad c3 38 02 . 8 ; ; ; l05b0h: ld a,(RAM+0bah) ;05b0 3a ba df : ld (de),a ;05b3 12 l05b4h: ld a,(RAM+0b9h) ;05b4 3a b9 df : or a ;05b7 b7 call z,sub_0b3eh ;05b8 cc 3e 0b . > call sub_04ddh ;05bb cd dd 04 call sub_0b20h ;05be cd 20 0b . cp 020h ;05c1 fe 20 . jr z,l05d0h ;05c3 28 0b ( cp 00dh ;05c5 fe 0d jr nz,l05adh ;05c7 20 e4 ld hl,RAM+0b9h ;05c9 21 b9 df ! dec (hl) ;05cc 35 5 call sub_0b81h_print_CRLF ;05cd cd 81 0b l05d0h: ld hl,(RAM+0a5h) ;05d0 2a a5 df * call sub_060dh ;05d3 cd 0d 06 ld a,(hl) ;05d6 7e ~ cp 0cfh ;05d7 fe cf jr nz,l05deh ;05d9 20 03 ld a,(RAM+0bbh) ;05db 3a bb df : l05deh: ld (RAM+0bah),a ;05de 32 ba df 2 ld (hl),0cfh ;05e1 36 cf 6 l05e3h: ld de,RAM+09bh ;05e3 11 9b df ld hl,RAM+02fh ;05e6 21 2f df ! / ld sp,hl ;05e9 f9 ex de,hl ;05ea eb ld bc,0001ah ;05eb 01 1a 00 ldir ;05ee ed b0 exx ;05f0 d9 pop hl ;05f1 e1 pop de ;05f2 d1 pop bc ;05f3 c1 exx ;05f4 d9 ex af,af' ;05f5 08 pop af ;05f6 f1 ex af,af' ;05f7 08 pop hl ;05f8 e1 pop hl ;05f9 e1 pop hl ;05fa e1 pop iy ;05fb fd e1 pop ix ;05fd dd e1 pop hl ;05ff e1 pop de ;0600 d1 pop bc ;0601 c1 pop af ;0602 f1 ld sp,(RAM+0a7h) ;0603 ed 7b a7 df . { push hl ;0607 e5 ld hl,(RAM+0a5h) ;0608 2a a5 df * ex (sp),hl ;060b e3 ret ;060c c9 ; ; ; sub_060dh: push hl ;060d e5 call sub_0619h ;060e cd 19 06 ld hl,0c26h ;0611 21 26 0c ! & call sub_0a24h ;0614 cd 24 0a . $ ex (sp),hl ;0617 e3 ret ;0618 c9 ; ; ; sub_0619h: ld a,(hl) ;0619 7e ~ and 0c7h ;061a e6 c7 cp 0c7h ;061c fe c7 ret z ;061e c8 cp 0c2h ;061f fe c2 ret z ;0621 c8 cp 0c4h ;0622 fe c4 ret z ;0624 c8 cp 0c0h ;0625 fe c0 ret z ;0627 c8 ld a,(hl) ;0628 7e ~ ret ;0629 c9 ; ; ; ld a,(hl) ;062a 7e ~ and 038h ;062b e6 38 . 8 ld l,a ;062d 6f o ld h,000h ;062e 26 00 & ret ;0630 c9 ; ; ; call sub_067dh ;0631 cd 7d 06 . } jr z,l0671h ;0634 28 3b ( ; ld hl,(RAM+0a7h) ;0636 2a a7 df * jr l0641h ;0639 18 06 ; ; ; call sub_067dh ;063b cd 7d 06 . } jr z,l0671h ;063e 28 31 ( 1 inc hl ;0640 23 # ; ; ; l0641h: ld a,(hl) ;0641 7e ~ inc hl ;0642 23 # ld h,(hl) ;0643 66 f ld l,a ;0644 6f o ret ;0645 c9 ; ; ; ld a,(hl) ;0646 7e ~ and 0dfh ;0647 e6 df ld d,a ;0649 57 W call sub_067eh ;064a cd 7e 06 . ~ jr z,l0671h ;064d 28 22 ( " l064fh: inc hl ;064f 23 # ld a,(hl) ;0650 7e ~ call sub_096bh ;0651 cd 6b 09 . k ex de,hl ;0654 eb ret ;0655 c9 ; ; ; ld a,(RAM+0b2h) ;0656 3a b2 df : dec a ;0659 3d = jr nz,l064fh ;065a 20 f3 inc hl ;065c 23 # inc hl ;065d 23 # ret ;065e c9 ; ; ; ld de,(RAM+0abh) ;065f ed 5b ab df . [ jr l0669h ;0663 18 04 ; ; ; ld de,(RAM+0a9h) ;0665 ed 5b a9 df . [ l0669h: inc hl ;0669 23 # ld a,(hl) ;066a 7e ~ cp 0e9h ;066b fe e9 ex de,hl ;066d eb ret z ;066e c8 ex de,hl ;066f eb dec hl ;0670 2b + l0671h: call sub_074ah ;0671 cd 4a 07 . J ld c,b ;0674 48 H ld b,000h ;0675 06 00 add hl,bc ;0677 09 ret ;0678 c9 ; ; ; ld hl,(RAM+0adh) ;0679 2a ad df * ret ;067c c9 ; ; ; sub_067dh: ld d,(hl) ;067d 56 V sub_067eh: bit 3,d ;067e cb 5a . Z ld a,(RAM+0b3h) ;0680 3a b3 df : jr nz,l0686h ;0683 20 01 cpl ;0685 2f / l0686h: ld e,a ;0686 5f _ save A ld a,d ;0687 7a z A = D/16 rrca ;0688 0f rrca ;0689 0f rrca ;068a 0f rrca ;068b 0f and 003h ;068c e6 03 A = 0 to 3 ld c,a ;068e 4f O C = 0 to 3 ld b,000h ;068f 06 00 BC = 0 to 3 push hl ;0691 e5 ld hl,L069BH_table ;0692 21 9b 06 ! add hl,bc ;0695 09 ld c,(hl) ;0696 4e N pop hl ;0697 e1 ld a,e ;0698 7b { restore A and c ;0699 a1 . mask bit from table ret ;069a c9 ; ; ; L069BH_table: .db 40h,01h,04h,80h ; ld b,b ;069b 40 @ ; ld bc,08004h ;069c 01 04 80 ld bc,ROM ;069f 01 00 00 call sub_070eh ;06a2 cd 0e 07 jp c,l0261h_print_LF_then_do_something ;06a5 da 61 02 . a call sub_0744h ;06a8 cd 44 07 . D jr z,l06cch ;06ab 28 1f ( l06adh: call sub_06d5h ;06ad cd d5 06 call sub_0744h ;06b0 cd 44 07 . D jr c,l06adh ;06b3 38 f8 8 ret ;06b5 c9 ; ; ; l06b6h: call sub_099ch_print_istr_that_follows ;06b6 cd 9c 09 db CR ;06b9 0d db TAB ;06ba 09 db TAB ;06bb 09 db TAB ;06bc 09 db TAB ;06bd 09 db TAB ;06be 09 db TAB+80h ;06bf 89 call sub_0b20h ;06c0 cd 20 0b . cp 00dh ;06c3 fe 0d ld b,001h ;06c5 06 01 jr z,l06ceh ;06c7 28 05 ( cp 020h ;06c9 fe 20 . ret nz ;06cb c0 l06cch: ld b,018h ;06cc 06 18 l06ceh: call sub_06d5h ;06ce cd d5 06 djnz l06ceh ;06d1 10 fb jr l06b6h ;06d3 18 e1 ; ; ; sub_06d5h: push bc ;06d5 c5 push hl ;06d6 e5 call sub_0b2eh_print_hex_word_then_space ;06d7 cd 2e 0b push bc ;06da c5 call sub_074ah ;06db cd 4a 07 . J call sub_0b26h_print_hex_words_with_space ;06de cd 26 0b . & pop bc ;06e1 c1 ex (sp),hl ;06e2 e3 call sub_099ch_print_istr_that_follows ;06e3 cd 9c 09 db CR ;06e6 0d db TAB ;06e7 09 db TAB ;06e8 09 db TAB+80h ;06e9 89 call sub_077dh_disassemble_opcode_at_HL ;06ea cd 7d 07 . } pop hl ;06ed e1 pop bc ;06ee c1 ret ;06ef c9 ; ; ; ;sub_06f0h: SETPIO: call sub_0b81h_print_CRLF ;06f0 cd 81 0b call sub_0b87h ;06f3 cd 87 0b call sub_0b81h_print_CRLF ;06f6 cd 81 0b ld hl,L_0cb0_command_summary_text ;06f9 21 b0 0c ! l06fch: call sub_0b81h_print_CRLF ;06fc cd 81 0b call sub_097dh_print_istr_at_HL ;06ff cd 7d 09 . } .istr "~~" ;0702 7e ~ db "~"+80h inc h ; 24 jr nz,l06fch ;0705 20 f5 call sub_0b81h_print_CRLF ;0707 cd 81 0b ret ;070a c9 ; ; ; sub_070bh: ld bc,COLD ;070b 01 00 01 sub_070eh: push de ;070e d5 call sub_0a3ah ;070f cd 3a 0a . : jr c,l073fh ;0712 38 2b 8 + push hl ;0714 e5 add hl,bc ;0715 09 call sub_0ac5h ;0716 cd c5 0a call nz,sub_0a84h ;0719 c4 84 0a ld c,l ;071c 4d M ld b,h ;071d 44 D pop hl ;071e e1 jr c,l073fh ;071f 38 1e 8 call sub_0744h ;0721 cd 44 07 . D jr z,l073fh ;0724 28 19 ( ccf ;0726 3f ? jr l0739h ;0727 18 10 ; ; ; sub_0729h: push de ;0729 d5 call sub_0a3ah ;072a cd 3a 0a . : ld b,h ;072d 44 D ld c,l ;072e 4d M call nc,sub_0a3ah ;072f d4 3a 0a . : jr c,l073fh ;0732 38 0b 8 push bc ;0734 c5 sbc hl,bc ;0735 ed 42 . B ex (sp),hl ;0737 e3 pop bc ;0738 c1 l0739h: ld (iy+0),001h ;0739 fd 36 00 01 . 6 jr c,l0742h ;073d 38 03 8 l073fh: ex de,hl ;073f eb ex (sp),hl ;0740 e3 ex de,hl ;0741 eb l0742h: pop de ;0742 d1 ret ;0743 c9 ; ; ; sub_0744h: push hl ;0744 e5 and a ;0745 a7 sbc hl,bc ;0746 ed 42 . B pop hl ;0748 e1 ret ;0749 c9 ; ; ; sub_074ah: push hl ;074a e5 ld c,000h ;074b 0e 00 ld a,(hl) ;074d 7e ~ cp 0edh ;074e fe ed ld de,l135fh_data ;0750 11 5f 13 . _ jr z,l0761h ;0753 28 0c ( ld de,table_of_control_words_start ;0755 11 df 12 and 0dfh ;0758 e6 df cp 0ddh ;075a fe dd jr nz,l0763h ;075c 20 05 ld de,l131fh_data ;075e 11 1f 13 l0761h: inc c ;0761 0c inc hl ;0762 23 # l0763h: ld a,(hl) ;0763 7e ~ push af ;0764 f5 and 0fch ;0765 e6 fc rrca ;0767 0f rrca ;0768 0f ld l,a ;0769 6f o ld h,000h ;076a 26 00 & add hl,de ;076c 19 pop af ;076d f1 and 003h ;076e e6 03 inc a ;0770 3c < ld b,a ;0771 47 G ld a,(hl) ;0772 7e ~ pop hl ;0773 e1 l0774h: rlca ;0774 07 rlca ;0775 07 djnz l0774h ;0776 10 fc and 003h ;0778 e6 03 add a,c ;077a 81 ld b,a ;077b 47 G ret ;077c c9 ; ; ; sub_077dh_disassemble_opcode_at_HL: ld a,(hl) ;077d 7e ~ cp 0cbh ;077e fe cb jr z,l07e1h_disassemble_opcode_after_CB ;0780 28 5f ( _ cp 0edh ;0782 fe ed jr z,l07e7h_disassemble_opcode_after_ED ;0784 28 61 ( a and 0dfh ;0786 e6 df cp 0ddh ;0788 fe dd jp z,l0851h_disassemble_opcode_after_DD ;078a ca 51 08 . Q ld a,(hl) ;078d 7e ~ cp 076h ;078e fe 76 . v opcode for HALT? ld a,017h ;0790 3e 17 > jp z,l08deh_lookup_mnemonics_NOP_to_RST ;0792 ca de 08 ld a,(hl) ;0795 7e ~ and 0c0h ;0796 e6 c0 ld de,1003h ;0798 11 03 10 jr z,l07dbh ;079b 28 3e ( > opcode for NOP? cp 0c0h ;079d fe c0 ld de,l10c3h_data ;079f 11 c3 10 jr z,l07dbh ;07a2 28 37 ( 7 cp 080h ;07a4 fe 80 jr z,l07b8h ;07a6 28 10 ( ld a,04bh ;07a8 3e 4b > K call l08deh_lookup_mnemonics_NOP_to_RST ;07aa cd de 08 call sub_0b39h_print_a_space ;07ad cd 39 0b . 9 call sub_0841h ;07b0 cd 41 08 . A call sub_08ach_print_comma ;07b3 cd ac 08 jr l07d2h ;07b6 18 1a ; ; ; l07b8h: ld de,L0f92h_table_of_mnemonics_ADD_ADC_SUB_SBC_AND_XOR_OR_CP ;07b8 11 92 0f call sub_0892h ;07bb cd 92 08 ld a,(hl) ;07be 7e ~ and 0f8h ;07bf e6 f8 cp 080h ;07c1 fe 80 jr z,l07cdh ;07c3 28 08 ( cp 088h ;07c5 fe 88 jr z,l07cdh ;07c7 28 04 ( cp 098h ;07c9 fe 98 jr nz,l07d2h ;07cb 20 05 l07cdh: call sub_099ch_print_istr_that_follows ;07cd cd 9c 09 .istr "A," ;07d0 41 A ;07d1 ac l07d2h: ld a,(hl) ;07d2 7e ~ l07d3h: and 007h ;07d3 e6 07 ld de,L0f87_table_of_registers ;07d5 11 87 0f jp l08e1h_print_istr_at_DE_if_A_is_zero ;07d8 c3 e1 08 ; ; l07dbh: ld a,(hl) ;07db 7e ~ and 03fh ;07dc e6 3f . ? jp l08b8h_lookup_data_at_HL_plus_A_times_3 ;07de c3 b8 08 ; ; l07e1h_disassemble_opcode_after_CB: inc hl ;07e1 23 # call sub_088ah ;07e2 cd 8a 08 jr l07d2h ;07e5 18 eb ; ; ; ; l07e7h_disassemble_opcode_after_ED: call sub_074ah ;07e7 cd 4a 07 . J dec b ;07ea 05 jp z,l0885h_print_question_mark ;07eb ca 85 08 inc hl ;07ee 23 # ld a,(hl) ;07ef 7e ~ and 0c0h ;07f0 e6 c0 jr z,l0824h ;07f2 28 30 ( 0 cp 0c0h ;07f4 fe c0 jp z,l0885h_print_question_mark ;07f6 ca 85 08 cp 040h ;07f9 fe 40 . @ jr z,l081bh ;07fb 28 1e ( ld a,(hl) ;07fd 7e ~ and 0e4h ;07fe e6 e4 cp 0a0h ;0800 fe a0 ld de,L0ff1_table_of_Z180_mnemonics_OTxxx ;0802 11 f1 0f jr nz,l0813h ;0805 20 0c ld a,(hl) ;0807 7e ~ and 003h ;0808 e6 03 ld de,L0fa8h_data_LD_CP_IN_OUT ;080a 11 a8 0f call l08e1h_print_istr_at_DE_if_A_is_zero ;080d cd e1 08 ld de,L0fb1h_data_I_D_IR_DR ;0810 11 b1 0f l0813h: call sub_08b1h_get_value_of_bits_543_at_HL ;0813 cd b1 08 and 003h ;0816 e6 03 jp l08e1h_print_istr_at_DE_if_A_is_zero ;0818 c3 e1 08 ; ; ; l081bh: ld de,1183h ;081b 11 83 11 ld a,(hl) ;081e 7e ~ and 03fh ;081f e6 3f . ? jp l08b8h_lookup_data_at_HL_plus_A_times_3 ;0821 c3 b8 08 ; ; ; l0824h: ld a,(hl) ;0824 7e ~ and 007h ;0825 e6 07 push af ;0827 f5 ld de,L0fdc_table_of_Z180_mnemonics ;0828 11 dc 0f call sub_0895h ;082b cd 95 08 pop af ;082e f1 jr z,l0847h ;082f 28 16 ( cp 004h ;0831 fe 04 jr z,sub_0841h ;0833 28 0c ( cp 001h ;0835 fe 01 ret nz ;0837 c0 . push hl ;0838 e5 inc hl ;0839 23 # call sub_08f8h ;083a cd f8 08 pop hl ;083d e1 call sub_08ach_print_comma ;083e cd ac 08 sub_0841h: call sub_08b1h_get_value_of_bits_543_at_HL ;0841 cd b1 08 jp l07d3h ;0844 c3 d3 07 ; ; ; l0847h: call sub_0841h ;0847 cd 41 08 . A call sub_08ach_print_comma ;084a cd ac 08 inc hl ;084d 23 # jp sub_08f8h ;084e c3 f8 08 ; ; ; l0851h_disassemble_opcode_after_DD: ld a,(hl) ;0851 7e ~ cp 0ddh ;0852 fe dd ld a,058h ;0854 3e 58 > X jr z,l0859h ;0856 28 01 ( inc a ;0858 3c < l0859h: ld (RAM+01ah),a ;0859 32 1a df 2 inc hl ;085c 23 # ld a,(hl) ;085d 7e ~ cp 0cbh ;085e fe cb jr z,l0875h ;0860 28 13 ( push hl ;0862 e5 ld bc,0027h ;0863 01 27 00 . ' ld hl,l1269h_data ;0866 21 69 12 ! i cpdr ;0869 ed b9 pop hl ;086b e1 jr nz,l0885h_print_question_mark ;086c 20 17 ld de,l126ah_data ;086e 11 6a 12 . j ; ; l0871h_lookup_data_at_HL_plus_C_times_3: ld a,c ;0871 79 y jp l08b8h_lookup_data_at_HL_plus_A_times_3 ;0872 c3 b8 08 ; ; ; l0875h: inc hl ;0875 23 # inc hl ;0876 23 # ld a,(hl) ;0877 7e ~ and 007h ;0878 e6 07 cp 006h ;087a fe 06 jr nz,l0885h_print_question_mark ;087c 20 07 call sub_088ah ;087e cd 8a 08 dec hl ;0881 2b + jp l0936h ;0882 c3 36 09 . 6 ; ; ; l0885h_print_question_mark: call sub_099ch_print_istr_that_follows ;0885 cd 9c 09 .istr "?" ;0888 bf ret ;0889 c9 ; ; ; sub_088ah: ld a,(hl) ;088a 7e ~ cp 040h ;088b fe 40 . @ jr nc,l089bh ;088d 30 0c 0 ld de,L0FB7_table_of_rotates_and_shifts ;088f 11 b7 0f sub_0892h: call sub_08b1h_get_value_of_bits_543_at_HL ;0892 cd b1 08 sub_0895h: call l08e1h_print_istr_at_DE_if_A_is_zero ;0895 cd e1 08 jp sub_0b39h_print_a_space ;0898 c3 39 0b . 9 ; ; ; l089bh: rlca ;089b 07 rlca ;089c 07 and 003h ;089d e6 03 dec a ;089f 3d = ld de,L0f37h_data ;08a0 11 37 0f . 7 call sub_0895h ;08a3 cd 95 08 call sub_08b1h_get_value_of_bits_543_at_HL ;08a6 cd b1 08 call sub_0af3h_decimal_nibble_to_ASCII ;08a9 cd f3 0a sub_08ach_print_comma: call sub_099ch_print_istr_that_follows ;08ac cd 9c 09 .istr "," ;08af ac ret ;08b0 c9 ; ; ; sub_08b1h_get_value_of_bits_543_at_HL: ld a,(hl) ;08b1 7e ~ rrca ;08b2 0f rrca ;08b3 0f rrca ;08b4 0f and 007h ;08b5 e6 07 ret ;08b7 c9 ; ; ; l08b8h_lookup_data_at_HL_plus_A_times_3: ld b,0 ;08b8 06 00 ld c,a ;08ba 4f O ex de,hl ;08bb eb add hl,bc ;08bc 09 hl += bc * 3 add hl,bc ;08bd 09 add hl,bc ;08be 09 ex de,hl ;08bf eb de = hl + a * 3 ld a,(de) ;08c0 1a push de ;08c1 d5 call l08deh_lookup_mnemonics_NOP_to_RST ;08c2 cd de 08 pop de ;08c5 d1 inc de ;08c6 13 ld a,(de) ;08c7 1a or a ;08c8 b7 ret z ;08c9 c8 inc hl ;08ca 23 # call sub_0b39h_print_a_space ;08cb cd 39 0b . 9 push de ;08ce d5 call sub_08dah ;08cf cd da 08 pop de ;08d2 d1 inc de ;08d3 13 ld a,(de) ;08d4 1a or a ;08d5 b7 ret z ;08d6 c8 call sub_08ach_print_comma ;08d7 cd ac 08 sub_08dah: bit 7,a ;08da cb 7f .  jr nz,l08e7h_lookup_data ;08dc 20 09 ; ; l08deh_lookup_mnemonics_NOP_to_RST: ld de,L0eedh_table_of_mnemonics_NOP_to_RST ;08de 11 ed 0e ; ; l08e1h_print_istr_at_DE_if_A_is_zero: ex de,hl ;08e1 eb call sub_097ah_print_istr_at_HL_if_A_is_zero ;08e2 cd 7a 09 . z ex de,hl ;08e5 eb ret ;08e6 c9 ; ; ; l08e7h_lookup_data: push hl ;08e7 e5 ld hl,l0871h_lookup_data_at_HL_plus_C_times_3 ;08e8 21 71 08 ! q ld c,a ;08eb 4f O ld b,000h ;08ec 06 00 add hl,bc ;08ee 09 ex (sp),hl ;08ef e3 ret ;08f0 c9 returns to l0871h_lookup_data_at_HL_plus_C_times_3 ; ; ; inc hl ;08f1 23 # sub_08f2h: ld a,(hl) ;08f2 7e ~ call sub_0ad6h ;08f3 cd d6 0a jr l091bh_print_H ;08f6 18 23 . # ; ; ; sub_08f8h: call sub_099ch_print_istr_that_follows ;08f8 cd 9c 09 .istr "(" ;08fb a8 call sub_08f2h ;08fc cd f2 08 jr l0931h_print_right_parenthesis ;08ff 18 30 . 0 ; ; ; call sub_099ch_print_istr_that_follows ;0901 cd 9c 09 .istr "(" ;0904 a8 call sub_090ah ;0905 cd 0a 09 jr l0931h_print_right_parenthesis ;0908 18 27 ; ; ; sub_090ah: ld e,(hl) ;090a 5e ^ inc hl ;090b 23 # ld d,(hl) ;090c 56 V jr l0913h ;090d 18 04 ; ; ; ld a,(hl) ;090f 7e ~ call sub_096bh ;0910 cd 6b 09 . k l0913h: ld a,d ;0913 7a z call sub_0ad6h ;0914 cd d6 0a ld a,e ;0917 7b { call sub_0adeh_hex_byte_to_ASCII ;0918 cd de 0a l091bh_print_H: call sub_099ch_print_istr_that_follows ;091b cd 9c 09 .istr "H" ;091e c8 ret ;091f c9 ; ; ; sub_0920h: call sub_099ch_print_istr_that_follows ;0920 cd 9c 09 .istr "(" ;0923 a8 call sub_099ch_print_istr_that_follows ;0924 cd 9c 09 .istr "I" ;0927 c9 ; ; ; ld a,(RAM+01ah) ;0928 3a 1a df : jp sub_0af5h ;092b c3 f5 0a ; ; ; call sub_0920h ;092e cd 20 09 . l0931h_print_right_parenthesis: call sub_099ch_print_istr_that_follows ;0931 cd 9c 09 .istr ")" ;0934 a9 ret ;0935 c9 ; ; ; l0936h: call sub_0920h ;0936 cd 20 09 . ld a,(hl) ;0939 7e ~ bit 7,a ;093a cb 7f .  jr nz,l0944h ;093c 20 06 call sub_099ch_print_istr_that_follows ;093e cd 9c 09 .istr "+" ;0941 ab jr l094ah ;0942 18 06 ; ; ; l0944h: call sub_099ch_print_istr_that_follows ;0944 cd 9c 09 .istr "-" ;0947 ad neg ;0948 ed 44 . D l094ah: ld bc,00affh ;094a 01 ff 0a cp 00ah ;094d fe 0a jr c,l0966h ;094f 38 15 8 cp 064h ;0951 fe 64 . d jr c,l095bh ;0953 38 06 8 ; ; ; l0955h: sub 064h ;0955 d6 64 . d call sub_099ch_print_istr_that_follows ;0957 cd 9c 09 .istr "1" ;095a b1 l095bh: sub b ;095b 90 inc c ;095c 0c jr nc,l095bh ;095d 30 fc 0 add a,b ;095f 80 ld b,a ;0960 47 G ld a,c ;0961 79 y call sub_0af3h_decimal_nibble_to_ASCII ;0962 cd f3 0a ld a,b ;0965 78 x l0966h: call sub_0af3h_decimal_nibble_to_ASCII ;0966 cd f3 0a jr l0931h_print_right_parenthesis ;0969 18 c6 . . ; ; ; sub_096bh: push hl ;096b e5 inc hl ;096c 23 # ld c,a ;096d 4f O rl a ;096e cb 17 sbc a,a ;0970 9f ld b,a ;0971 47 G add hl,bc ;0972 09 ex de,hl ;0973 eb pop hl ;0974 e1 ret ;0975 c9 ; ; ; loop_0976h: call sub_0993h_search_for_bit_7_set_at_HL ;0976 cd 93 09 dec a ;0979 3d = sub_097ah_print_istr_at_HL_if_A_is_zero: or a ;097a b7 jr nz,loop_0976h ;097b 20 f9 sub_097dh_print_istr_at_HL: ;print character at (HL) push af ;097d f5 . l097eh: ld a,(hl) ;097e 7e ~ cp 006h ;097f fe 06 . . Is it > ASCII ACK ? jr nc,l0989h ;0981 30 06 0 . if not, ; ; if character is <= six, print that many spaces. ; loop_0983h: call sub_0b39h_print_a_space ;0983 cd 39 0b . 9 dec a ;0986 3d jr nz,loop_0983h ;0987 20 fa l0989h: call nz,sub_0af5h ;0989 bit 7,(hl) ;098c cb 7e is ms bit set? inc hl ;098e 23 hl++ jr z,l097eh ;098f 28 ed no, loop round again pop af ;0991 restore AF ret ;0992 c9 and return sub_0993h_search_for_bit_7_set_at_HL: bit 7,(hl) ;0993 cb 7e . ~ inc hl ;0995 23 # jr z,sub_0993h_search_for_bit_7_set_at_HL ;0996 28 fb ( ret ;0998 c9 ; ; ; sub_0999h_print_CRLF_then_istr_that_follows: call sub_0b81h_print_CRLF ;0999 cd 81 0b sub_099ch_print_istr_that_follows: ex (sp),hl ;099c e3 call sub_097dh_print_istr_at_HL ;099d cd 7d 09 . } ex (sp),hl ;09a0 e3 ret ;09a1 c9 ; ; ; sub_09a2h: push hl ;09a2 e5 push de ;09a3 d5 loop_09a4h: ld a,(de) ;09a4 1a call sub_0abbh_test_for_Accent_grave_DEL_or_SPC ;09a5 cd bb 0a sub (hl) ;09a8 96 and 07fh ;09a9 e6 7f .  clear bit 7 l09abh: jr nz,exit_09bbh ;09ab 20 0e bit 7,(hl) ;09ad cb 7e . ~ inc hl ;09af 23 # inc de ;09b0 13 jr z,loop_09a4h ;09b1 28 f1 ( call sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE ;09b3 cd ae 0a jr nz,exit_09bbh ;09b6 20 03 ex de,hl ;09b8 eb ex (sp),hl ;09b9 e3 ex de,hl ;09ba eb exit_09bbh: pop de ;09bb d1 pop hl ;09bc e1 ret ;09bd c9 ; ; ; sub_09beh: ld de,RAM+01bh ;09be 11 1b df push de ;09c1 d5 inc de ;09c2 13 ld b,000h ;09c3 06 00 l09c5h_do_space: call sub_0b20h ;09c5 cd 20 0b . call sub_099ch_print_istr_that_follows ;09c8 cd 9c 09 db SPC,BS+0x80 ;09cb 20 88 cp 003h ;09cd fe 03 jr nz,l09d6h ;09cf 20 05 ld a,b ;09d1 78 x or a ;09d2 b7 jp z,WRSRT ;09d3 ca 38 02 . 8 ; ; ; l09d6h: cp CR ;09d6 fe 0d jr z,l09fch_do_CR ;09d8 28 22 ( " cp BS ;09da fe 08 jr z,l0a04h_do_BS ;09dc 28 26 ( & cp 018h ;09de fe 18 . . cancel jr z,l0a0eh_do_cancel ;09e0 28 2c ( , cp SPC ;09e2 fe 20 . jr c,l09c5h_do_space ;09e4 38 df 8 ld c,a ;09e6 4f O ld a,b ;09e7 78 x cp ">" ;09e8 fe 3e . > jr nz,l09f3h ;09ea 20 07 call sub_099ch_print_istr_that_follows ;09ec cd 9c 09 db "<",0x88 ;09ef 3c < jr l09c5h_do_space ;09f1 18 d2 ; ; ; l09f3h: ld a,c ;09f3 79 y ld (de),a ;09f4 12 call sub_0af5h ;09f5 cd f5 0a inc de ;09f8 13 inc b ;09f9 04 jr l09c5h_do_space ;09fa 18 c9 ; ; ; l09fch_do_CR: ld a,CR ;09fc 3e 0d > ld (de),a ;09fe 12 pop de ;09ff d1 ld a,b ;0a00 78 x ld (de),a ;0a01 12 inc de ;0a02 13 ret ;0a03 c9 ; ; ; l0a04h_do_BS: ld a,b ;0a04 78 x or a ;0a05 b7 jr z,l09c5h_do_space ;0a06 28 bd ( call sub_0a1ch ;0a08 cd 1c 0a dec b ;0a0b 05 jr l09c5h_do_space ;0a0c 18 b7 . . ; ; ; l0a0eh_do_cancel: call sub_0a13h ;0a0e cd 13 0a jr l09c5h_do_space ;0a11 18 b2 ; ; ; sub_0a13h: ld a,b ;0a13 78 x or a ;0a14 b7 ret z ;0a15 c8 ; ; ; l0a16h: call sub_0a1ch ;0a16 cd 1c 0a djnz l0a16h ;0a19 10 fb ret ;0a1b c9 ; ; ; sub_0a1ch: dec de ;0a1c 1b call sub_099ch_print_istr_that_follows ;0a1d cd 9c 09 db BS, SPC, BS+80h ;0a20 08 ret ;0a23 c9 ; ; ; sub_0a24h: push bc ;0a24 c5 ld c,(hl) ;0a25 4e N inc hl ;0a26 23 # ld b,0 ;0a27 06 00 cpir ;0a29 ed b1 push af ;0a2b f5 jr nz,l0a30h ;0a2c 20 02 inc hl ;0a2e 23 # inc hl ;0a2f 23 # l0a30h: add hl,bc ;0a30 09 add hl,bc ;0a31 09 add hl,bc ;0a32 09 ld a,(hl) ;0a33 7e ~ inc hl ;0a34 23 # ld h,(hl) ;0a35 66 f ld l,a ;0a36 6f o pop af ;0a37 f1 pop bc ;0a38 c1 ret ;0a39 c9 ; ; ; sub_0a3ah: ld (iy+0),003h ;0a3a fd 36 00 03 ld hl,ROM ;0a3e 21 00 00 call sub_0ac5h ;0a41 cd c5 0a scf ;0a44 37 7 ret z ;0a45 c8 cp "$" ;0a46 fe 24 . $ jr nz,l0a4eh ;0a48 20 04 ld hl,(RAM+0a5h) ;0a4a 2a a5 df inc de ;0a4d 13 l0a4eh: call sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE ;0a4e cd ae 0a ret z ;0a51 c8 push bc ;0a52 c5 call sub_0a92h ;0a53 cd 92 0a jr c,l0a5fh ;0a56 38 07 8 l0a58h: add hl,hl ;0a58 29 jr c,l0a5fh ;0a59 38 04 djnz l0a58h ;0a5b 10 fb ld c,a ;0a5d 4f add hl,bc ;0a5e 09 l0a5fh: pop bc ;0a5f c1 ret c ;0a60 d8 inc de ;0a61 13 jr l0a4eh ;0a62 18 ea ; ; ; sub_0a64h: ld (iy+0),003h ;0a64 fd 36 00 03 ld c,000h ;0a68 0e 00 call sub_0ac5h ;0a6a cd c5 0a scf ;0a6d 37 7 ret z ;0a6e c8 l0a6fh: call sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE ;0a6f cd ae 0a ret z ;0a72 c8 cp 02eh ;0a73 fe 2e ret z ;0a75 c8 call sub_0a92h ;0a76 cd 92 0a ret c ;0a79 d8 l0a7ah: rl c ;0a7a cb 11 ret c ;0a7c d8 djnz l0a7ah ;0a7d 10 fb add a,c ;0a7f 81 ld c,a ;0a80 4f O inc de ;0a81 13 jr l0a6fh ;0a82 18 eb ; ; ; sub_0a84h: call sub_0a3ah ;0a84 cd 3a 0a ret c ;0a87 d8 sub_0a88h: call sub_0ac5h ;0a88 cd c5 0a ret z ;0a8b c8 ld (iy+0),002h ;0a8c fd 36 00 02 scf ;0a90 37 7 ret ;0a91 c9 ; ; ; sub_0a92h: ld b,004h ;0a92 06 04 ld (iy+0),004h ;0a94 fd 36 00 04 sub_0a98h_char_to_hex_value: ; returns with carry clear if not a hex digit. call sub_0abbh_test_for_Accent_grave_DEL_or_SPC ;0a98 cd bb 0a cp "0" ;0a9b fe 30 less than "0" ? ret c ;0a9d d8 cp ":" ;0a9e fe 3a past "9" ? jr c,l0aabh_is_hex ;0aa0 38 09 8 ; cp "A" ;0aa2 fe 41 . A less than "0" ? ret c ;0aa4 d8 cp "G" ;0aa5 fe 47 . G greater than "F" ? ccf ;0aa7 3f ? ret c ;0aa8 d8 sub 007h ;0aa9 d6 07 ; l0aabh_is_hex: and 00fh ;0aab e6 0f . . only need bits 3 to 3 ret ;0aad c9 ; ; ; sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE: ld a,(de) ;0aae 1a cp "=" ;0aaf fe 3d . = ret z ;0ab1 c8 ; cp CR ;0ab2 fe 0d ret z ;0ab4 c8 ; cp SPC ;0ab5 fe 20 . ret z ;0ab7 c8 ; cp "," ;0ab8 fe 2c . , ret ;0aba c9 ; ; ; sub_0abbh_test_for_Accent_grave_DEL_or_SPC: cp "`" ;0abb fe 60 . ` accent grave. Not apostrophe. ret c ;0abd d8 cp DEL ;0abe fe 7f .  ret z ;0ac0 c8 sub SPC ;0ac1 d6 20 . ret ;0ac3 c9 ; ; ; loop_0ac4h: inc de ;0ac4 13 ; sub_0ac5h: ld a,(de) ;0ac5 1a cp CR ;0ac6 fe 0d ret z ;0ac8 c8 ; call sub_0aaeh_test_for_Equals_CR_SPC_or_Comma_at_DE ;0ac9 cd ae 0a jr z,loop_0ac4h ;0acc 28 f6 ret ;0ace c9 ; ; ; sub_0acfh_print_a_space_then_hex_byte_at_HL_predecremented: call sub_0b39h_print_a_space ;0acf cd 39 0b ; ; sub_0ad2h_hex_byte_at_HL_predecremented: dec hl ;0ad2 2b + ld a,(hl) ;0ad3 7e ~ jr sub_0adeh_hex_byte_to_ASCII ;0ad4 18 08 sub_0ad6h: cp 0a0h ;0ad6 fe a0 jr c,sub_0adeh_hex_byte_to_ASCII ;0ad8 38 04 8 call sub_099ch_print_istr_that_follows ;0ada cd 9c 09 db "0"+$80 ;0add b0 ; ; ; sub_0adeh_hex_byte_to_ASCII: push af ;0ade f5 rrc a ;0adf cb 0f MS nibble to LS nibble position rrc a ;0ae1 cb 0f rrc a ;0ae3 cb 0f rrc a ;0ae5 cb 0f call sub_0aebh_hex_nibble_to_ASCII ;0ae7 pop af ;0aea f1 restore whole byte ; ; ; sub_0aebh_hex_nibble_to_ASCII: and 00fh ;0aeb e6 0f mask to use the lower nibble cp 10 ;0aed fe 0a jr c,sub_0af3h_decimal_nibble_to_ASCII ;0aef 38 02 add a,7 ;0af1 c6 07 ; sub_0af3h_decimal_nibble_to_ASCII: add a,"0" ;0af3 c6 30 sub_0af5h: push af ;0af5 f5 loop_0af6h: call CONST ;0af6 cd 33 01 . or a ;0af9 b7 call nz,sub_0b0dh_get_character_from_console ;0afa c4 0d 0b ld a,(RAM+18h) ;0afd 3a 18 df cp XOFF ;0b00 fe 13 jr z,loop_0af6h ;0b02 28 f2 ; pop af ;0b04 f1 push af ;0b05 f5 and 07fh ;0b06 e6 7f 7-bit ascii only call CONOUT ;0b08 cd 45 01 echo to console pop af ;0b0b f1 ret ;0b0c c9 ; ; ; sub_0b0dh_get_character_from_console: call CONIN ;0b0d cd 3f 01 cp ETX ;0b10 fe 03 ETX jp z,WRSRT ;0b12 ca 38 02 cp XON ;0b15 fe 11 DC1 jr z,l0b1ch_XON ;0b17 28 03 cp XOFF ;0b19 fe 13 DC3 ret nz ;0b1b c0 l0b1ch_XON: ld (RAM+18h),a ;0b1c 32 18 df ret ;0b1f c9 ; ; ; sub_0b20h: call sub_0b0dh_get_character_from_console ;0b20 cd 0d 0b jr z,sub_0b20h ;0b23 28 fb loop if zero ret ;0b25 c9 ; ; ; sub_0b26h_print_hex_words_with_space: ld a,(hl) ;0b26 7e ~ call sub_0b36h_print_hex_byte_then_space ;0b27 cd 36 0b . 6 inc hl ;0b2a 23 # djnz sub_0b26h_print_hex_words_with_space ;0b2b 10 f9 ret ;0b2d c9 ; ; ; sub_0b2eh_print_hex_word_then_space: call sub_0b81h_print_CRLF ;0b2e cd 81 0b ld a,h ;0b31 7c | call sub_0adeh_hex_byte_to_ASCII ;0b32 cd de 0a ld a,l ;0b35 7d } ; ; ; sub_0b36h_print_hex_byte_then_space: call sub_0adeh_hex_byte_to_ASCII ;0b36 cd de 0a ; ; ; sub_0b39h_print_a_space: call sub_099ch_print_istr_that_follows ;0b39 cd 9c 09 db SPC+$80 ;0b3c a0 ret ;0b3d c9 ; ; ; ; ; ; ; For example, the register display at a break-point is as shown below, ; where register contents (in Hex) are shown beneath the standard ; Z80 register names: ; ; A SZ-H-PNC BC DE HL IX IY SP ; 3F 10010101 1235 4569 ABF3 F000 F800 FC2E ; PC I R A' CNP-H-ZS BC' DE' HL' ; 2058 FF 4C 25 10010101 1527 2589 2544 ; ++ Break ++ ; ; sub_0b3eh: ld hl,RAM+0b9h ;0b3e 21 b9 df ! ld (hl),017h ;0b41 36 17 6 call sub_0999h_print_CRLF_then_istr_that_follows ;0b43 cd 99 09 db "A" ;0b46 41 db 2 ;0b47 02 db "SZ-H-PNC" ;0b48 53 S db 2 ; number of spaces db "BC" db 3 ;0b53 03 db "DE" ;0b54 44 D db 3 ;0b56 03 db "HL" ;0b57 48 H db 3 ;0b59 03 db "IX" ;0b5a 49 IX db 3 ;0b5c 03 db "IY" ;0b5d 49 IY db 3 ;0b5f 03 db "SP" ;0b60 53 SP db 3 ;0b62 03 db "PC" ;0b63 50 PC db 2 ;0b65 02 db "I" ;0b66 49 I db 2 ;0b67 02 db "R" ;0b68 52 R db 2 ;0b69 02 db "A'" ;0b6a 41 A db SPC ;0b6c 20 db "CNP-H-ZS" ;0b6d 43 D db 2 ;0b75 02 db "BC'" ;0b77 43 C 27 ' db 2 ;0b79 02 db "DE'" ;0b7a 44 D db 2 ;0b7d 02 .istr "HL'" ;0b7e 48 H 4c L ; ; ; sub_0b81h_print_CRLF: call sub_099ch_print_istr_that_follows ;0b81 cd 9c 09 db CR ;0b84 0d db LF+80h ;0b85 8a ret ;0b86 c9 ; ; ; sub_0b87h: call sub_0999h_print_CRLF_then_istr_that_follows ;0b87 cd 99 09 ; ROM is 1.6 but manual written for 2.0 ; ; Martello IPIMON Monitor 2.0 4732-00 ; British Telecommunications plc (c) 1987 ; User ROM: 2000H - 7FFFH ; User RAM: 8000H - DEFFH ; User PL2: E000H - FFFFH ; new_code_end: db "Martello IPIMON Monitor v1.6" db SPC, SPC, SPC, SPC db "4732-00",CR,LF db "British Telecommunications plc (c) 1987", CR,LF db "User ROM: 2000H - 7FFFH", CR,LF db "User RAM: 8000H - DEFFH", CR,LF .istr "User PL2: E000H - FFFFH" RET ; ; ; L0c26: if 1 db 0x10,0xc2 db 0xc4,0xc0 db 0xc7,0xc3 db 0xcd,0xc9 db 0x18,0x10 db 0x20,0x28 db 0x30,0x38 db 0xe9,0xdd db 0xfd,0x71 db 0x06,0x65 db 0x06,0x5f db 0x06,0x79 db 0x06,0x46 db 0x06,0x46 db 0x06,0x46 db 0x06,0x46 db 0x06,0x56 db 0x06,0x4f db 0x06,0x36 db 0x06,0x40 db 0x06,0x40 db 0x06,0x2a db 0x06,0x31 db 0x06,0x3b db 0x06,0x3b,0x06 l0c59h_table_of_command_characters: db 15 ; number of command characters that follow: db "VZSBTDLEGMFIOH?" ; 2.3.1 ? Display Command Summary ; 2.3.2 B Set Breakpoint ; 2.3.3 D Disassemble ; 2.3.4 E Examine ; 2.3.5 F Fill ; 2.3.6 G Go ; 2.3.7 H Hex I/P ; 2.3.8 I Input from Port ; 2.3.9 L Load ; 2.3.10 M Move ; 2.3.11 O Output to Port ; 2.3.12 S Save ; 2.3.13 T Trace ; 2.3.14 V Vector I/O Channel ; 2.3.15 Z Z80 Register Dump db 0x60,0x02,0xf0 db 0x06,0x11,0x03,0xe4,0x03,0xd5,0x03,0xf5,0x03,0x12,0x04,0x28 db 0x05,0xa5,0x03,0xa3,0x02,0x9f,0x06,0x11,0x05,0x2c,0x04,0x62 db 0x03,0x67,0x04,0x8a,0x02,0x0c,0x0c,0x0b,0x0a,0x09,0x08,0x07 db 0x06,0x05,0x04,0x03,0x02,0x01,0xa3,0xdf,0x9b,0xdf,0x9d,0xdf db 0x9f,0xdf,0xa1,0xdf,0xa5,0xdf,0xa7,0xdf,0xa9,0xdf,0xab,0xdf endif L0ca8: ; BLOCK 'address_table' (start 0x0ca8 end 0x0cb0) address_table_start: defw RAM+0adh ;0ca8 ad df defw RAM+0afh ;0caa af df defw RAM+0b1h ;0cac b1 df defw RAM+0b3h ;0cae b3 df address_table_end: ; BLOCK 'ascii_text' (start 0x0cb0 end 0x1006) ascii_text_start: ; ? (Commands) ; B (Break) ,[] ; D (Disasm) ,,[] (CR,SP) ; E (Exam) ,,[] ; F (Fill) ,,, ; G (Go) ,[] ; H * (Hex Input) ; I (Input) , ; L (Load) , [CR] NN ... NN (-,J," ") ; M (Move) ,,, ; O (Output) ,, ; S * (Save) ,[] ; T (Trace) ,[] ; V (Vector) , ; Z (Registers) ; * Uses Standard Intel Hex Format L_0cb0_command_summary_text: db "?", SPC, SPC,SPC .istr "(Commands)" db "B",SPC,SPC,SPC,"(Break)" db SPC,SPC,SPC,SPC,SPC .istr ",[]" db "D",SPC,SPC,SPC db "(Disasm)" db SPC,SPC,SPC,SPC db ",,[]" db SPC .istr "(CR,SP)" db "E",SPC,SPC,SPC db "(Exam)" db SPC,SPC,SPC,SPC,SPC,SPC .istr ",,[]" db "F",SPC,SPC,SPC db "(Fill)" db SPC,SPC,SPC,SPC,SPC,SPC db ",,," .istr "" db "G",SPC,SPC,SPC db "(Go)" db SPC,SPC,SPC,SPC,SPC,SPC,SPC,SPC .istr ",[]" db "H",SPC db "*" db SPC .istr "(Hex Input)" db "I",SPC,SPC,SPC db "(Input)", SPC,SPC,SPC,SPC,SPC .istr "," db "L",SPC,SPC,SPC db "(Load)", SPC,SPC,SPC,SPC,SPC,SPC db ",",SPC db "[CR]",SPC db "NN",SPC db "...",SPC db "NN",SPC db "(-,J,",0x22,0xa9 db "M", SPC,SPC,SPC db "(Move)", SPC,SPC,SPC,SPC,SPC,SPC .istr ",,," db "O",SPC,SPC,SPC db "(Output)",SPC,SPC,SPC,SPC .istr ",," db "S",SPC,"*",SPC db "(Save)", SPC,SPC,SPC,SPC,SPC,SPC .istr ",,[]" db "T",SPC,SPC,SPC db "(Trace)",SPC,SPC,SPC,SPC,SPC .istr ",[]" db "V",SPC,SPC,SPC db "(Vector)",SPC,SPC,SPC,SPC .istr "," db "Z",SPC,SPC,SPC .istr "(Registers)" db SPC,SPC db "*",SPC .istr "Uses standard Intel HEX format" db 0x24 L0E84_table_of_triple_io_vectors: .dw SIOST .dw SIOIN .dw SIOOUT .dw AUXST .dw AUXIN .dw AUXOUT .dw PIOST .dw PIOIN .dw PIOOUT L0e96h_istr_Error: .istr "Error" L0e9b_istr_Out_of_range: .istr "Out of range" .istr "Not req." .istr "Missing param." .istr "Value error" L0ec8_table_of_register_pairs: .istr "AF" .istr "BC" .istr "DE" .istr "HL" .istr "IX" .istr "IY" .istr "SP" .istr "PC" .istr "AF'" .istr "BC'" .istr "DE'" .istr "HL'" L0ee4_table_of_flags: .istr "S" .istr "Z" .istr "-" .istr "H" .istr "-" .istr "P" .istr "N" .istr "C" .istr "A" L0eedh_table_of_mnemonics_NOP_to_RST: .istr " " .istr "NOP" .istr "INC" .istr "DEC" .istr "DJNZ" .istr "JR" .istr "JP" .istr "CALL" .istr "PUSH" .istr "POP" .istr "RET" .istr "RLCA" .istr "RRCA" .istr "RLA" .istr "RRA" .istr "DAA" .istr "CPL" .istr "SCF" .istr "CCF" .istr "EX" .istr "EXX" .istr "EI" .istr "DI" .istr "HALT" .istr "RST" L0f37h_data: .istr "BIT" .istr "RES" .istr "SET" .istr "RETN" .istr "RETI" .istr "NEG" .istr "IM" .istr "1" .istr "2" .istr "RRD" .istr "RLD" .istr "(BC)" .istr "(DE)" .istr "(HL)" .istr "(SP)" .istr "(C)" .istr "AF" .istr "AF'" .istr "BC" .istr "DE" .istr "HL" .istr "SP" .istr "IX" .istr "IY" .istr "I" .istr "R" L0f7b_table_of_conditions: .istr "NZ" .istr "Z" .istr "NC" .istr "C" .istr "PO" .istr "PE" .istr "P" .istr "M" L0f87_table_of_registers: .istr "B" .istr "C" .istr "D" .istr "E" .istr "H" .istr "L" .istr "(HL)" .istr "A" L0f92h_table_of_mnemonics_ADD_ADC_SUB_SBC_AND_XOR_OR_CP: .istr "ADD" .istr "ADC" .istr "SUB" .istr "SBC" .istr "AND" .istr "XOR" .istr "OR" .istr "CP" L0fa8h_data_LD_CP_IN_OUT: .istr "LD" .istr "CP" .istr "IN" .istr "OUT" L0fb1h_data_I_D_IR_DR: .istr "I" .istr "D" .istr "IR" .istr "DR" L0FB7_table_of_rotates_and_shifts: .istr "RLC" .istr "RRC" .istr "RL" .istr "RR" .istr "SLA" .istr "SRA" .istr "SLL" .istr "SRL" L0FCDh: .istr "0" .istr "8" .istr "16" .istr "24" .istr "32" .istr "40" .istr "48" .istr "56" .istr "?" L0fdc_table_of_Z180_mnemonics: .istr "INO" .istr "OUTO" .istr "SLP" .istr "MLT" .istr "TST" .istr "TSTIO" L0ff1_table_of_Z180_mnemonics_OTxxx: .istr "OTIM" .istr "OTDM" .istr "OTIMR" .istr "OTDMR" ascii_text_end: ; BLOCK 'table_of_control_bytes' (start 0x1003 end 0x12df) table_of_control_bytes_start: defb 001h ;1003 01 defb 000h ;1004 00 defb 000h ;1005 00 defb 04bh ;1006 4b K defb 02bh ;1007 2b + defb 099h ;1008 99 defb 04bh ;1009 4b K defb 024h ;100a 24 $ defb 042h ;100b 42 B defb 002h ;100c 02 defb 02bh ;100d 2b + defb 000h ;100e 00 defb 002h ;100f 02 defb 03bh ;1010 3b ; defb 000h ;1011 00 defb 003h ;1012 03 defb 03bh ;1013 3b ; defb 000h ;1014 00 defb 04bh ;1015 4b K defb 03bh ;1016 3b ; defb 081h ;1017 81 defb 00bh ;1018 0b defb 000h ;1019 00 defb 000h ;101a 00 defb 013h ;101b 13 defb 029h ;101c 29 ) defb 02ah ;101d 2a * defb 043h ;101e 43 C defb 02dh ;101f 2d - defb 02bh ;1020 2b + defb 04bh ;1021 4b K defb 042h ;1022 42 B defb 024h ;1023 24 $ defb 003h ;1024 03 defb 02bh ;1025 2b + defb 000h ;1026 00 defb 002h ;1027 02 defb 03ch ;1028 3c < defb 000h ;1029 00 defb 003h ;102a 03 defb 03ch ;102b 3c < defb 000h ;102c 00 defb 04bh ;102d 4b K defb 03ch ;102e 3c < defb 081h ;102f 81 defb 00ch ;1030 0c defb 000h ;1031 00 defb 000h ;1032 00 defb 004h ;1033 04 defb 09eh ;1034 9e defb 000h ;1035 00 defb 04bh ;1036 4b K defb 02ch ;1037 2c , defb 099h ;1038 99 defb 04bh ;1039 4b K defb 025h ;103a 25 % defb 042h ;103b 42 B defb 002h ;103c 02 defb 02ch ;103d 2c , defb 000h ;103e 00 defb 002h ;103f 02 defb 03dh ;1040 3d = defb 000h ;1041 00 defb 003h ;1042 03 defb 03dh ;1043 3d = defb 000h ;1044 00 defb 04bh ;1045 4b K defb 03dh ;1046 3d = defb 081h ;1047 81 defb 00dh ;1048 0d defb 000h ;1049 00 defb 000h ;104a 00 defb 005h ;104b 05 defb 09eh ;104c 9e defb 000h ;104d 00 defb 043h ;104e 43 C defb 02dh ;104f 2d - defb 02ch ;1050 2c , defb 04bh ;1051 4b K defb 042h ;1052 42 B defb 025h ;1053 25 % defb 003h ;1054 03 defb 02ch ;1055 2c , defb 000h ;1056 00 defb 002h ;1057 02 defb 03eh ;1058 3e > defb 000h ;1059 00 defb 003h ;105a 03 defb 03eh ;105b 3e > defb 000h ;105c 00 defb 04bh ;105d 4b K defb 03eh ;105e 3e > defb 081h ;105f 81 defb 00eh ;1060 0e defb 000h ;1061 00 defb 000h ;1062 00 defb 005h ;1063 05 defb 033h ;1064 33 3 defb 09eh ;1065 9e defb 04bh ;1066 4b K defb 02dh ;1067 2d - defb 099h ;1068 99 defb 04bh ;1069 4b K defb 090h ;106a 90 defb 02dh ;106b 2d - defb 002h ;106c 02 defb 02dh ;106d 2d - defb 000h ;106e 00 defb 002h ;106f 02 defb 03fh ;1070 3f ? defb 000h ;1071 00 defb 003h ;1072 03 defb 03fh ;1073 3f ? defb 000h ;1074 00 defb 04bh ;1075 4b K defb 03fh ;1076 3f ? defb 081h ;1077 81 defb 00fh ;1078 0f defb 000h ;1079 00 defb 000h ;107a 00 defb 005h ;107b 05 defb 034h ;107c 34 4 defb 09eh ;107d 9e defb 043h ;107e 43 C defb 02dh ;107f 2d - defb 02dh ;1080 2d - defb 04bh ;1081 4b K defb 02dh ;1082 2d - defb 090h ;1083 90 defb 003h ;1084 03 defb 02dh ;1085 2d - defb 000h ;1086 00 defb 002h ;1087 02 defb 040h ;1088 40 @ defb 000h ;1089 00 defb 003h ;108a 03 defb 040h ;108b 40 @ defb 000h ;108c 00 defb 04bh ;108d 4b K defb 040h ;108e 40 @ defb 081h ;108f 81 defb 010h ;1090 10 defb 000h ;1091 00 defb 000h ;1092 00 defb 005h ;1093 05 defb 035h ;1094 35 5 defb 09eh ;1095 9e defb 04bh ;1096 4b K defb 02eh ;1097 2e defb 099h ;1098 99 defb 04bh ;1099 4b K defb 090h ;109a 90 defb 042h ;109b 42 B defb 002h ;109c 02 defb 02eh ;109d 2e defb 000h ;109e 00 defb 002h ;109f 02 defb 041h ;10a0 41 A defb 000h ;10a1 00 defb 003h ;10a2 03 defb 041h ;10a3 41 A defb 000h ;10a4 00 defb 04bh ;10a5 4b K defb 041h ;10a6 41 A defb 081h ;10a7 81 defb 011h ;10a8 11 defb 000h ;10a9 00 defb 000h ;10aa 00 defb 005h ;10ab 05 defb 036h ;10ac 36 6 defb 09eh ;10ad 9e defb 043h ;10ae 43 C defb 02dh ;10af 2d - defb 02eh ;10b0 2e defb 04bh ;10b1 4b K defb 042h ;10b2 42 B defb 090h ;10b3 90 defb 003h ;10b4 03 defb 02eh ;10b5 2e defb 000h ;10b6 00 defb 002h ;10b7 02 defb 042h ;10b8 42 B defb 000h ;10b9 00 defb 003h ;10ba 03 defb 042h ;10bb 42 B defb 000h ;10bc 00 defb 04bh ;10bd 4b K defb 042h ;10be 42 B defb 081h ;10bf 81 defb 012h ;10c0 12 defb 000h ;10c1 00 defb 000h ;10c2 00 l10c3h_data: defb 00ah ;10c3 0a defb 033h ;10c4 33 3 defb 000h ;10c5 00 defb 009h ;10c6 09 defb 02bh ;10c7 2b + defb 000h ;10c8 00 defb 006h ;10c9 06 defb 033h ;10ca 33 3 defb 099h ;10cb 99 defb 006h ;10cc 06 defb 099h ;10cd 99 defb 000h ;10ce 00 defb 007h ;10cf 07 defb 033h ;10d0 33 3 defb 099h ;10d1 99 defb 008h ;10d2 08 defb 02bh ;10d3 2b + defb 000h ;10d4 00 defb 043h ;10d5 43 C defb 042h ;10d6 42 B defb 081h ;10d7 81 defb 018h ;10d8 18 defb 05bh ;10d9 5b [ defb 000h ;10da 00 defb 00ah ;10db 0a defb 034h ;10dc 34 4 defb 000h ;10dd 00 defb 00ah ;10de 0a defb 000h ;10df 00 defb 000h ;10e0 00 defb 006h ;10e1 06 defb 034h ;10e2 34 4 defb 099h ;10e3 99 defb 063h ;10e4 63 c defb 000h ;10e5 00 defb 000h ;10e6 00 defb 007h ;10e7 07 defb 034h ;10e8 34 4 defb 099h ;10e9 99 defb 007h ;10ea 07 defb 099h ;10eb 99 defb 000h ;10ec 00 defb 044h ;10ed 44 D defb 042h ;10ee 42 B defb 081h ;10ef 81 defb 018h ;10f0 18 defb 05ch ;10f1 5c \ defb 000h ;10f2 00 defb 00ah ;10f3 0a defb 035h ;10f4 35 5 defb 000h ;10f5 00 defb 009h ;10f6 09 defb 02ch ;10f7 2c , defb 000h ;10f8 00 defb 006h ;10f9 06 defb 035h ;10fa 35 5 defb 099h ;10fb 99 defb 04eh ;10fc 4e N defb 087h ;10fd 87 defb 042h ;10fe 42 B defb 007h ;10ff 07 defb 035h ;1100 35 5 defb 099h ;1101 99 defb 008h ;1102 08 defb 02ch ;1103 2c , defb 000h ;1104 00 defb 045h ;1105 45 E defb 081h ;1106 81 defb 000h ;1107 00 defb 018h ;1108 18 defb 05dh ;1109 5d ] defb 000h ;110a 00 defb 00ah ;110b 0a defb 036h ;110c 36 6 defb 000h ;110d 00 defb 014h ;110e 14 defb 000h ;110f 00 defb 000h ;1110 00 defb 006h ;1111 06 defb 036h ;1112 36 6 defb 099h ;1113 99 defb 04dh ;1114 4d M defb 042h ;1115 42 B defb 087h ;1116 87 defb 007h ;1117 07 defb 036h ;1118 36 6 defb 099h ;1119 99 defb 063h ;111a 63 c defb 000h ;111b 00 defb 000h ;111c 00 defb 046h ;111d 46 F defb 042h ;111e 42 B defb 081h ;111f 81 defb 018h ;1120 18 defb 05eh ;1121 5e ^ defb 000h ;1122 00 defb 00ah ;1123 0a defb 037h ;1124 37 7 defb 000h ;1125 00 defb 009h ;1126 09 defb 02dh ;1127 2d - defb 000h ;1128 00 defb 006h ;1129 06 defb 037h ;112a 37 7 defb 099h ;112b 99 defb 013h ;112c 13 defb 027h ;112d 27 ' defb 02dh ;112e 2d - defb 007h ;112f 07 defb 037h ;1130 37 7 defb 099h ;1131 99 defb 008h ;1132 08 defb 02dh ;1133 2d - defb 000h ;1134 00 defb 047h ;1135 47 G defb 081h ;1136 81 defb 000h ;1137 00 defb 018h ;1138 18 defb 05fh ;1139 5f _ defb 000h ;113a 00 defb 00ah ;113b 0a defb 038h ;113c 38 8 defb 000h ;113d 00 defb 006h ;113e 06 defb 026h ;113f 26 & defb 000h ;1140 00 defb 006h ;1141 06 defb 038h ;1142 38 8 defb 099h ;1143 99 defb 013h ;1144 13 defb 02ch ;1145 2c , defb 02dh ;1146 2d - defb 007h ;1147 07 defb 038h ;1148 38 8 defb 099h ;1149 99 defb 063h ;114a 63 c defb 000h ;114b 00 defb 000h ;114c 00 defb 048h ;114d 48 H defb 081h ;114e 81 defb 000h ;114f 00 defb 018h ;1150 18 defb 060h ;1151 60 ` defb 000h ;1152 00 defb 00ah ;1153 0a defb 039h ;1154 39 9 defb 000h ;1155 00 defb 009h ;1156 09 defb 029h ;1157 29 ) defb 000h ;1158 00 defb 006h ;1159 06 defb 039h ;115a 39 9 defb 099h ;115b 99 defb 016h ;115c 16 defb 000h ;115d 00 defb 000h ;115e 00 defb 007h ;115f 07 defb 039h ;1160 39 9 defb 099h ;1161 99 defb 008h ;1162 08 defb 029h ;1163 29 ) defb 000h ;1164 00 defb 049h ;1165 49 I defb 081h ;1166 81 defb 000h ;1167 00 defb 018h ;1168 18 defb 061h ;1169 61 a defb 000h ;116a 00 defb 00ah ;116b 0a defb 03ah ;116c 3a : defb 000h ;116d 00 defb 04bh ;116e 4b K defb 02eh ;116f 2e defb 02dh ;1170 2d - defb 006h ;1171 06 defb 03ah ;1172 3a : defb 099h ;1173 99 defb 015h ;1174 15 defb 000h ;1175 00 defb 000h ;1176 00 defb 007h ;1177 07 defb 03ah ;1178 3a : defb 099h ;1179 99 defb 063h ;117a 63 c defb 000h ;117b 00 defb 000h ;117c 00 defb 04ah ;117d 4a J defb 081h ;117e 81 defb 000h ;117f 00 defb 018h ;1180 18 defb 062h ;1181 62 b defb 000h ;1182 00 ;l1183h_data: defb 04dh ;1183 4d M defb 03bh ;1184 3b ; defb 028h ;1185 28 ( defb 04eh ;1186 4e N defb 028h ;1187 28 ( defb 03bh ;1188 3b ; defb 046h ;1189 46 F defb 02dh ;118a 2d - defb 02bh ;118b 2b + defb 04bh ;118c 4b K defb 090h ;118d 90 defb 02bh ;118e 2b + defb 01eh ;118f 1e defb 000h ;1190 00 defb 000h ;1191 00 defb 01ch ;1192 1c defb 000h ;1193 00 defb 000h ;1194 00 defb 01fh ;1195 1f defb 05bh ;1196 5b [ defb 000h ;1197 00 defb 04bh ;1198 4b K defb 031h ;1199 31 1 defb 042h ;119a 42 B defb 04dh ;119b 4d M defb 03ch ;119c 3c < defb 028h ;119d 28 ( defb 04eh ;119e 4e N defb 028h ;119f 28 ( defb 03ch ;11a0 3c < defb 044h ;11a1 44 D defb 02dh ;11a2 2d - defb 02bh ;11a3 2b + defb 04bh ;11a4 4b K defb 02bh ;11a5 2b + defb 090h ;11a6 90 defb 067h ;11a7 67 g defb 02bh ;11a8 2b + defb 000h ;11a9 00 defb 01dh ;11aa 1d defb 000h ;11ab 00 defb 000h ;11ac 00 defb 063h ;11ad 63 c defb 000h ;11ae 00 defb 000h ;11af 00 defb 04bh ;11b0 4b K defb 032h ;11b1 32 2 defb 042h ;11b2 42 B defb 04dh ;11b3 4d M defb 03dh ;11b4 3d = defb 028h ;11b5 28 ( defb 04eh ;11b6 4e N defb 028h ;11b7 28 ( defb 03dh ;11b8 3d = defb 046h ;11b9 46 F defb 02dh ;11ba 2d - defb 02ch ;11bb 2c , defb 04bh ;11bc 4b K defb 090h ;11bd 90 defb 02ch ;11be 2c , defb 068h ;11bf 68 h defb 081h ;11c0 81 defb 000h ;11c1 00 defb 063h ;11c2 63 c defb 000h ;11c3 00 defb 000h ;11c4 00 defb 01fh ;11c5 1f defb 020h ;11c6 20 defb 000h ;11c7 00 defb 04bh ;11c8 4b K defb 042h ;11c9 42 B defb 031h ;11ca 31 1 defb 04dh ;11cb 4d M defb 03eh ;11cc 3e > defb 028h ;11cd 28 ( defb 04eh ;11ce 4e N defb 028h ;11cf 28 ( defb 03eh ;11d0 3e > defb 044h ;11d1 44 D defb 02dh ;11d2 2d - defb 02ch ;11d3 2c , defb 04bh ;11d4 4b K defb 02ch ;11d5 2c , defb 090h ;11d6 90 defb 067h ;11d7 67 g defb 02ch ;11d8 2c , defb 000h ;11d9 00 defb 063h ;11da 63 c defb 000h ;11db 00 defb 000h ;11dc 00 defb 01fh ;11dd 1f defb 021h ;11de 21 ! defb 000h ;11df 00 defb 04bh ;11e0 4b K defb 042h ;11e1 42 B defb 032h ;11e2 32 2 defb 04dh ;11e3 4d M defb 03fh ;11e4 3f ? defb 028h ;11e5 28 ( defb 04eh ;11e6 4e N defb 028h ;11e7 28 ( defb 03fh ;11e8 3f ? defb 046h ;11e9 46 F defb 02dh ;11ea 2d - defb 02dh ;11eb 2d - defb 04bh ;11ec 4b K defb 090h ;11ed 90 defb 02dh ;11ee 2d - defb 068h ;11ef 68 h defb 081h ;11f0 81 defb 000h ;11f1 00 defb 063h ;11f2 63 c defb 000h ;11f3 00 defb 000h ;11f4 00 defb 063h ;11f5 63 c defb 000h ;11f6 00 defb 000h ;11f7 00 defb 022h ;11f8 22 " defb 000h ;11f9 00 defb 000h ;11fa 00 defb 04dh ;11fb 4d M defb 040h ;11fc 40 @ defb 028h ;11fd 28 ( defb 04eh ;11fe 4e N defb 028h ;11ff 28 ( defb 040h ;1200 40 @ defb 044h ;1201 44 D defb 02dh ;1202 2d - defb 02dh ;1203 2d - defb 04bh ;1204 4b K defb 02dh ;1205 2d - defb 090h ;1206 90 defb 067h ;1207 67 g defb 02dh ;1208 2d - defb 000h ;1209 00 defb 063h ;120a 63 c defb 000h ;120b 00 defb 000h ;120c 00 defb 063h ;120d 63 c defb 000h ;120e 00 defb 000h ;120f 00 defb 023h ;1210 23 # defb 000h ;1211 00 defb 000h ;1212 00 defb 063h ;1213 63 c defb 000h ;1214 00 defb 000h ;1215 00 defb 063h ;1216 63 c defb 000h ;1217 00 defb 000h ;1218 00 defb 046h ;1219 46 F defb 02dh ;121a 2d - defb 02eh ;121b 2e defb 04bh ;121c 4b K ;l121dh_data: defb 090h ;121d 90 defb 02eh ;121e 2e defb 069h ;121f 69 i defb 081h ;1220 81 defb 000h ;1221 00 defb 063h ;1222 63 c defb 000h ;1223 00 defb 000h ;1224 00 defb 066h ;1225 66 f defb 000h ;1226 00 defb 000h ;1227 00 ;l1228h_data: defb 063h ;1228 63 c defb 000h ;1229 00 defb 000h ;122a 00 defb 04dh ;122b 4d M defb 042h ;122c 42 B defb 028h ;122d 28 ( defb 04eh ;122e 4e N defb 028h ;122f 28 ( defb 042h ;1230 42 B defb 044h ;1231 44 D defb 02dh ;1232 2d - defb 02eh ;1233 2e defb 04bh ;1234 4b K ;l1235h_data: defb 02eh ;1235 2e defb 090h ;1236 90 defb 067h ;1237 67 g defb 02eh ;1238 2e defb 000h ;1239 00 defb 063h ;123a 63 c defb 000h ;123b 00 defb 000h ;123c 00 defb 063h ;123d 63 c defb 000h ;123e 00 defb 000h ;123f 00 defb 063h ;1240 63 c ;l1241h_data: defb 000h ;1241 00 defb 000h ;1242 00 defb 009h ;1243 09 defb 019h ;1244 19 defb 021h ;1245 21 ! defb 022h ;1246 22 " defb 023h ;1247 23 # defb 029h ;1248 29 ) defb 02ah ;1249 2a * defb 02bh ;124a 2b + defb 034h ;124b 34 4 defb 035h ;124c 35 5 ;l124dh_data: defb 036h ;124d 36 6 defb 039h ;124e 39 9 defb 046h ;124f 46 F defb 04eh ;1250 4e N defb 056h ;1251 56 V defb 05eh ;1252 5e ^ defb 066h ;1253 66 f defb 06eh ;1254 6e n defb 070h ;1255 70 p defb 071h ;1256 71 q defb 072h ;1257 72 r defb 073h ;1258 73 s defb 074h ;1259 74 t defb 075h ;125a 75 u defb 077h ;125b 77 w defb 07eh ;125c 7e ~ defb 086h ;125d 86 defb 08eh ;125e 8e defb 096h ;125f 96 defb 09eh ;1260 9e defb 0a6h ;1261 a6 defb 0aeh ;1262 ae defb 0b6h ;1263 b6 defb 0beh ;1264 be defb 0e1h ;1265 e1 defb 0e3h ;1266 e3 defb 0e5h ;1267 e5 defb 0e9h ;1268 e9 l1269h_data: defb 0f9h ;1269 f9 l126ah_data: defb 043h ;126a 43 C defb 0b3h ;126b b3 defb 02bh ;126c 2b + defb 043h ;126d 43 C defb 0b3h ;126e b3 defb 02ch ;126f 2c , defb 04bh ;1270 4b K defb 0b3h ;1271 b3 defb 099h ;1272 99 defb 04bh ;1273 4b K defb 090h ;1274 90 defb 0b3h ;1275 b3 defb 002h ;1276 02 defb 0b3h ;1277 b3 defb 000h ;1278 00 defb 043h ;1279 43 C defb 0b3h ;127a b3 defb 0b3h ;127b b3 defb 04bh ;127c 4b K defb 0b3h ;127d b3 defb 090h ;127e 90 defb 003h ;127f 03 defb 0b3h ;1280 b3 defb 000h ;1281 00 defb 002h ;1282 02 defb 0c5h ;1283 c5 defb 000h ;1284 00 defb 003h ;1285 03 defb 0c5h ;1286 c5 defb 000h ;1287 00 defb 04bh ;1288 4b K defb 0c5h ;1289 c5 defb 080h ;128a 80 defb 043h ;128b 43 C defb 0b3h ;128c b3 defb 02eh ;128d 2e defb 04bh ;128e 4b K defb 03bh ;128f 3b ; defb 0c5h ;1290 c5 defb 04bh ;1291 4b K defb 03ch ;1292 3c < defb 0c5h ;1293 c5 defb 04bh ;1294 4b K defb 03dh ;1295 3d = defb 0c5h ;1296 c5 defb 04bh ;1297 4b K defb 03eh ;1298 3e > defb 0c5h ;1299 c5 defb 04bh ;129a 4b K defb 03fh ;129b 3f ? defb 0c5h ;129c c5 defb 04bh ;129d 4b K defb 040h ;129e 40 @ defb 0c5h ;129f c5 defb 04bh ;12a0 4b K defb 0c5h ;12a1 c5 defb 03bh ;12a2 3b ; defb 04bh ;12a3 4b K defb 0c5h ;12a4 c5 defb 03ch ;12a5 3c < defb 04bh ;12a6 4b K defb 0c5h ;12a7 c5 defb 03dh ;12a8 3d = defb 04bh ;12a9 4b K defb 0c5h ;12aa c5 defb 03eh ;12ab 3e > defb 04bh ;12ac 4b K defb 0c5h ;12ad c5 defb 03fh ;12ae 3f ? defb 04bh ;12af 4b K defb 0c5h ;12b0 c5 defb 040h ;12b1 40 @ defb 04bh ;12b2 4b K defb 0c5h ;12b3 c5 defb 042h ;12b4 42 B defb 04bh ;12b5 4b K defb 042h ;12b6 42 B defb 0c5h ;12b7 c5 defb 043h ;12b8 43 C defb 042h ;12b9 42 B defb 0c5h ;12ba c5 defb 044h ;12bb 44 D defb 042h ;12bc 42 B defb 0c5h ;12bd c5 defb 045h ;12be 45 E defb 0c5h ;12bf c5 defb 000h ;12c0 00 defb 046h ;12c1 46 F defb 042h ;12c2 42 B defb 0c5h ;12c3 c5 defb 047h ;12c4 47 G defb 0c5h ;12c5 c5 defb 000h ;12c6 00 defb 048h ;12c7 48 H defb 0c5h ;12c8 c5 defb 000h ;12c9 00 defb 049h ;12ca 49 I defb 0c5h ;12cb c5 defb 000h ;12cc 00 defb 04ah ;12cd 4a J defb 0c5h ;12ce c5 defb 000h ;12cf 00 defb 009h ;12d0 09 defb 0b3h ;12d1 b3 defb 000h ;12d2 00 defb 013h ;12d3 13 defb 027h ;12d4 27 ' defb 0b3h ;12d5 b3 defb 008h ;12d6 08 defb 0b3h ;12d7 b3 defb 000h ;12d8 00 defb 006h ;12d9 06 defb 0bdh ;12da bd defb 000h ;12db 00 defb 04bh ;12dc 4b K defb 02eh ;12dd 2e defb 0b3h ;12de b3 table_of_control_bytes_end: ; l12dfh_data: ; BLOCK 'table_of_control_words' (start 0x12df end 0x1400) table_of_control_words_start: defw 05975h ;12df 75 59 u Y defw 05955h ;12e1 55 59 U Y defw 059b5h ;12e3 b5 59 . Y defw 05995h ;12e5 95 59 . Y defw 059bdh ;12e7 bd 59 . Y defw 0599dh ;12e9 9d 59 . Y defw 059bdh ;12eb bd 59 . Y defw 0599dh ;12ed 9d 59 . Y defw 05555h ;12ef 55 55 U U defw 05555h ;12f1 55 55 U U defw 05555h ;12f3 55 55 U U defw 05555h ;12f5 55 55 U U defw 05555h ;12f7 55 55 U U defw 05555h ;12f9 55 55 U U defw 05555h ;12fb 55 55 U U defw 05555h ;12fd 55 55 U U defw 05555h ;12ff 55 55 U U defw 05555h ;1301 55 55 U U defw 05555h ;1303 55 55 U U defw 05555h ;1305 55 55 U U defw 05555h ;1307 55 55 U U defw 05555h ;1309 55 55 U U defw 05555h ;130b 55 55 U U defw 05555h ;130d 55 55 U U defw 0d95fh ;130f 5f d9 _ defw 0f95eh ;1311 5e f9 ^ defw 0d95eh ;1313 5e d9 ^ defw 0c95eh ;1315 5e c9 ^ defw 0d95dh ;1317 5d d9 ] defw 0c95dh ;1319 5d c9 ] defw 0d95dh ;131b 5d d9 ] defw 0c95dh ;131d 5d c9 ] l131fh_data: defw 00000h ;131f 00 00 defw 00010h ;1321 10 00 defw 00000h ;1323 00 00 defw 00010h ;1325 10 00 defw 0003dh ;1327 3d 00 = defw 0001dh ;1329 1d 00 defw 0ac00h ;132b 00 ac defw 00010h ;132d 10 00 defw 00800h ;132f 00 08 defw 00800h ;1331 00 08 defw 00800h ;1333 00 08 defw 00800h ;1335 00 08 defw 00800h ;1337 00 08 defw 00800h ;1339 00 08 defw 0a2aah ;133b aa a2 defw 00800h ;133d 00 08 defw 00800h ;133f 00 08 defw 00800h ;1341 00 08 defw 00800h ;1343 00 08 defw 00800h ;1345 00 08 defw 00800h ;1347 00 08 defw 00800h ;1349 00 08 defw 00800h ;134b 00 08 defw 00800h ;134d 00 08 defw 00000h ;134f 00 00 defw 00003h ;1351 03 00 defw 00000h ;1353 00 00 defw 00000h ;1355 00 00 defw 01011h ;1357 11 10 defw 00010h ;1359 10 00 defw 00000h ;135b 00 00 defw 00010h ;135d 10 00 l135fh_data: defw 040a0h ;135f a0 40 . @ defw 040a0h ;1361 a0 40 . @ defw 040a0h ;1363 a0 40 . @ defw 040a0h ;1365 a0 40 . @ defw 040a0h ;1367 a0 40 . @ defw 040a0h ;1369 a0 40 . @ defw 04080h ;136b 80 40 . @ defw 040a0h ;136d a0 40 . @ defw 05557h ;136f 57 55 W U defw 05157h ;1371 57 51 W Q defw 00557h ;1373 57 05 W defw 04557h ;1375 57 45 W E defw 08157h ;1377 57 81 W defw 04157h ;1379 57 41 W A defw 08407h ;137b 07 84 defw 04057h ;137d 57 40 W @ defw 00001h ;137f 01 00 defw 00001h ;1381 01 00 defw 00001h ;1383 01 00 defw 00001h ;1385 01 00 defw 00055h ;1387 55 00 U defw 00055h ;1389 55 00 U defw 00055h ;138b 55 00 U defw 00055h ;138d 55 00 U defw 00000h ;138f 00 00 defw 00000h ;1391 00 00 defw 00000h ;1393 00 00 defw 00000h ;1395 00 00 defw 00000h ;1397 00 00 defw 00000h ;1399 00 00 defw 00000h ;139b 00 00 defw 00000h ;139d 00 00 defw 00000h ;139f 00 00 defw 00010h ;13a1 10 00 defw 00000h ;13a3 00 00 defw 00010h ;13a5 10 00 defw 0003dh ;13a7 3d 00 = defw 0001dh ;13a9 1d 00 defw 0ac00h ;13ab 00 ac defw 00010h ;13ad 10 00 defw 00800h ;13af 00 08 defw 00800h ;13b1 00 08 defw 00800h ;13b3 00 08 defw 00800h ;13b5 00 08 defw 00800h ;13b7 00 08 defw 00800h ;13b9 00 08 defw 0a2aah ;13bb aa a2 defw 00800h ;13bd 00 08 defw 00800h ;13bf 00 08 defw 00800h ;13c1 00 08 defw 00800h ;13c3 00 08 defw 00800h ;13c5 00 08 defw 00800h ;13c7 00 08 defw 00800h ;13c9 00 08 defw 00800h ;13cb 00 08 defw 00800h ;13cd 00 08 defw 00000h ;13cf 00 00 defw 00003h ;13d1 03 00 defw 00000h ;13d3 00 00 defw 00000h ;13d5 00 00 defw 01011h ;13d7 11 10 defw 00010h ;13d9 10 00 defw 00000h ;13db 00 00 defw 00010h ;13dd 10 00 defw 040a0h ;13df a0 40 . @ defw 040a0h ;13e1 a0 40 . @ defw 040a0h ;13e3 a0 40 . @ defw 040a0h ;13e5 a0 40 . @ defw 040a0h ;13e7 a0 40 . @ defw 040a0h ;13e9 a0 40 . @ defw 04080h ;13eb 80 40 . @ defw 040a0h ;13ed a0 40 . @ defw 05557h ;13ef 57 55 W U defw 05157h ;13f1 57 51 W Q defw 00557h ;13f3 57 05 W defw 04557h ;13f5 57 45 W E defw 08157h ;13f7 57 81 W defw 04157h ;13f9 57 41 W A defw 08407h ;13fb 07 84 defw 04057h ;13fd 57 40 W @ defb 001h ;13ff 01 table_of_control_words_end: .end